<html itemscope="" itemtype="https://schema.org/QAPage" class="html__responsive " lang="en"><head>

    <title>Hello World in Python - Stack Overflow</title>
    <link rel="shortcut icon" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196">
    <link rel="apple-touch-icon" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a">
    <link rel="image_src" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a"> 
    <link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml">
    <link rel="canonical" href="https://stackoverflow.com/questions/1077347/hello-world-in-python">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0">
    <meta property="og:type" content="website">
    <meta property="og:url" content="https://stackoverflow.com/questions/1077347/hello-world-in-python">
    <meta property="og:site_name" content="Stack Overflow">
    <meta property="og:image" itemprop="image primaryImageOfPage" content="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon@2.png?v=73d79a89bded">
    <meta name="twitter:card" content="summary">
    <meta name="twitter:domain" content="stackoverflow.com">
    <meta name="twitter:title" property="og:title" itemprop="name" content="Hello World in Python">
    <meta name="twitter:description" property="og:description" itemprop="description" content="I tried running a python script:

print &quot;Hello, World!&quot; 
And I get this error:

File &quot;hello.py&quot;, line 1
print &quot;Hello, World!&quot;
                    ^
SyntaxError: invalid syntax
What is g...">
<script async="" src="https://www.google-analytics.com/analytics.js"></script><script id="webpack-public-path" type="text/uri-list">https://cdn.sstatic.net/</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script defer="" src="https://cdn.sstatic.net/Js/third-party/npm/@stackoverflow/stacks/dist/js/stacks.min.js?v=d5f780ae3281"></script>
<script src="https://cdn.sstatic.net/Js/stub.en.js?v=01af928a07d1"></script>

<link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Shared/stacks.css?v=5017f4b5c9a3">
<link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/stackoverflow/primary.css?v=9871e6bf989a">



        <script>StackExchange.helpers.removeParameterFromQueryString("s");</script>
        <script>StackExchange.helpers.removeParameterFromQueryString("r");</script>
    <script>
        StackExchange.ready(function () {

                StackExchange.using("snippets", function () {
                    StackExchange.snippets.initSnippetRenderer();
                });
                
            StackExchange.using("postValidation", function () {
                StackExchange.postValidation.initOnBlurAndSubmit($('#post-form'), 2, 'answer');
            });


            StackExchange.question.init({showAnswerHelp:true,showTrendingSortLaunchPopover:false,showTrendingSortPostLaunchPopover:false,totalCommentCount:7,shownCommentCount:5,enableTables:true,questionId:1077347});

            styleCode();

                StackExchange.realtime.subscribeToQuestion('1', '1077347');
                StackExchange.using("gps", function () { StackExchange.gps.trackOutboundClicks('#content', '.js-post-body'); });


        });
    </script>

    
    
    
        <script src="https://accounts.google.com/gsi/client" async=""></script>
    <link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Shared/Channels/channels.css?v=487caf0a5e80">

    
    


<script type="application/json" data-role="module-args" data-module-name="Shared/options.mod">{"options":{"locale":"en","serverTime":1714102074,"routeName":"Questions/Show","stackAuthUrl":"https://stackauth.com","networkMetaHostname":"meta.stackexchange.com","site":{"name":"Stack Overflow","description":"Q\u0026A for professional and enthusiast programmers","isNoticesTabEnabled":true,"enableNewTagCreationWarning":true,"insertSpaceAfterNameTabCompletion":false,"id":1,"cookieDomain":".stackoverflow.com","childUrl":"https://meta.stackoverflow.com","negativeVoteScoreFloor":null,"enableSocialMediaInSharePopup":true,"protocol":"https"},"user":{"fkey":"2df6514198795106c1c1c5c9051f7852696a672b45a679539f094869aa86fc3e","tid":"06752cd0-49db-4eca-994e-f46340cc733c","rep":0,"isAnonymous":true,"isAnonymousNetworkWide":true},"events":{"postType":{"question":1},"postEditionSection":{"title":1,"body":2,"tags":3}}}}</script>
<script type="application/json" data-role="module-args" data-module-name="Shared/settings.mod">{"settings":{"userMessaging":{"showNewFeatureNotice":true},"accounts":{"currentPasswordRequiredForChangingStackIdPassword":true},"search":{},"comments":{},"elections":{"opaVoteResultsBaseUrl":"https://www.opavote.com/results/"},"mentions":{"maxNumUsersInDropdown":50},"questions":{"enableQuestionTitleLengthLiveWarning":true,"enableSavesFeature":true,"maxTitleSize":150,"questionTitleLengthStartLiveWarningChars":50},"legal":{"useCustomConsent":false,"oneTrustTCFConfigId":"c3d9f1e3-55f3-4eba-b268-46cee4c6789c"},"tags":{},"subscriptions":{"defaultMaxTrueUpSeats":1000,"defaultFreemiumMaxTrueUpSeats":50,"defaultBasicMaxTrueUpSeats":250},"site":{"stacksEditorPreviewEnabled":true,"enableUserHovercards":true,"allowImageUploads":true,"forceHttpsImages":true,"styleCode":true,"enableImgurHttps":true},"auth":{},"intercom":{"appId":"inf0secd"},"flags":{"allowRetractingCommentFlags":true,"allowRetractingFlags":true},"paths":{"jQueryUIJSPath":"https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js","jQueryUICSSPath":"https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/themes/smoothness/jquery-ui.css"},"activationExperiment":{"showNewSignupModal":true},"snippets":{"renderDomain":"stacksnippets.net","snippetsEnabled":true},"markdown":{"enableTables":true}}}</script>
<script>StackExchange.init();</script>

<script>
    StackExchange.using.setCacheBreakers({"Js/adops.en.js":"6da43f5e0a84","Js/ask.en.js":"","Js/begin-edit-event.en.js":"20edbaccceae","Js/copy-transpiled.en.js":"e0eb0f70fc72","Js/events.en.js":"","Js/explore-qlist.en.js":"2b1f34938b8b","Js/full-anon.en.js":"566bb733c91a","Js/full.en.js":"fb5136183554","Js/highlightjs-loader.en.js":"510e2f94c2bf","Js/inline-tag-editing.en.js":"8517756a2cb6","Js/keyboard-shortcuts.en.js":"40f19073ece0","Js/markdown-it-loader.en.js":"5818ef89ff9d","Js/mentions-transpiled.en.js":"e9226a7ec13c","Js/moderator.en.js":"3aaef9c9be3d","Js/postCollections-transpiled.en.js":"11a255fe9394","Js/post-validation.en.js":"243bf7d290a3","Js/question-editor.en.js":"","Js/review-v2-transpiled.en.js":"eac23fa01f57","Js/revisions.en.js":"47b4d5ac24c9","Js/stacks-editor.en.js":"f9e0107e49b7","Js/tageditor.en.js":"4d22c6090e5a","Js/tageditornew.en.js":"4554c63a5fa6","Js/tagsuggestions.en.js":"bd6ec908f2a7","Js/unlimited-transpiled.en.js":"f26a1d5f3365","Js/wmd.en.js":"d5c33f3d6a8a","Js/snippet-javascript-codemirror.en.js":"ae1dcf38deb7"});
    StackExchange.using("gps", function() {
         StackExchange.gps.init(true);
    });
</script>
<noscript id="noscript-css"><style>body,.s-topbar{margin-top:1.9em}</style></noscript>
<style id="googleidentityservice_button_styles">.qJTHM{-webkit-user-select:none;color:#202124;direction:ltr;-webkit-touch-callout:none;font-family:"Roboto-Regular",arial,sans-serif;-webkit-font-smoothing:antialiased;font-weight:400;margin:0;overflow:hidden;-webkit-text-size-adjust:100%}.ynRLnc{left:-9999px;position:absolute;top:-9999px}.L6cTce{display:none}.bltWBb{word-break:break-all}.hSRGPd{color:#1a73e8;cursor:pointer;font-weight:500;text-decoration:none}.Bz112c-W3lGp{height:16px;width:16px}.Bz112c-E3DyYd{height:20px;width:20px}.Bz112c-r9oPif{height:24px;width:24px}.Bz112c-uaxL4e{-webkit-border-radius:10px;border-radius:10px}.LgbsSe-Bz112c{display:block}.S9gUrf-YoZ4jf,.S9gUrf-YoZ4jf *{border:none;margin:0;padding:0}.fFW7wc-ibnC6b>.aZ2wEe>div{border-color:#4285f4}.P1ekSe-ZMv3u>div:nth-child(1){background-color:#1a73e8!important}.P1ekSe-ZMv3u>div:nth-child(2),.P1ekSe-ZMv3u>div:nth-child(3){background-image:linear-gradient(to right,rgba(255,255,255,.7),rgba(255,255,255,.7)),linear-gradient(to right,#1a73e8,#1a73e8)!important}.haAclf{display:inline-block}.nsm7Bb-HzV7m-LgbsSe{-webkit-border-radius:4px;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background-color .218s,border-color .218s;transition:background-color .218s,border-color .218s;-webkit-user-select:none;-webkit-appearance:none;background-color:#fff;background-image:none;border:1px solid #dadce0;color:#3c4043;cursor:pointer;font-family:"Google Sans",arial,sans-serif;font-size:14px;height:40px;letter-spacing:0.25px;outline:none;overflow:hidden;padding:0 12px;position:relative;text-align:center;vertical-align:middle;white-space:nowrap;width:auto}@media screen and (-ms-high-contrast:active){.nsm7Bb-HzV7m-LgbsSe{border:2px solid windowText;color:windowText}}.nsm7Bb-HzV7m-LgbsSe.pSzOP-SxQuSe{font-size:14px;height:32px;letter-spacing:0.25px;padding:0 10px}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe{font-size:11px;height:20px;letter-spacing:0.3px;padding:0 8px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe{padding:0;width:40px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe.pSzOP-SxQuSe{width:32px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe.purZT-SxQuSe{width:20px}.nsm7Bb-HzV7m-LgbsSe.JGcpL-RbRzK{-webkit-border-radius:20px;border-radius:20px}.nsm7Bb-HzV7m-LgbsSe.JGcpL-RbRzK.pSzOP-SxQuSe{-webkit-border-radius:16px;border-radius:16px}.nsm7Bb-HzV7m-LgbsSe.JGcpL-RbRzK.purZT-SxQuSe{-webkit-border-radius:10px;border-radius:10px}.nsm7Bb-HzV7m-LgbsSe.MFS4be-Ia7Qfc{border:none;color:#fff}.nsm7Bb-HzV7m-LgbsSe.MFS4be-v3pZbf-Ia7Qfc{background-color:#1a73e8}.nsm7Bb-HzV7m-LgbsSe.MFS4be-JaPV2b-Ia7Qfc{background-color:#202124;color:#e8eaed}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{height:18px;margin-right:8px;min-width:18px;width:18px}.nsm7Bb-HzV7m-LgbsSe.pSzOP-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{height:14px;min-width:14px;width:14px}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{height:10px;min-width:10px;width:10px}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-Bz112c{margin-left:8px;margin-right:-4px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{margin:0;padding:10px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe.pSzOP-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{padding:8px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe.purZT-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c{padding:4px}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;display:-webkit-box;display:-webkit-flex;display:flex;justify-content:center;-webkit-align-items:center;align-items:center;background-color:#fff;height:36px;margin-left:-10px;margin-right:12px;min-width:36px;width:36px}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf .nsm7Bb-HzV7m-LgbsSe-Bz112c,.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf .nsm7Bb-HzV7m-LgbsSe-Bz112c{margin:0;padding:0}.nsm7Bb-HzV7m-LgbsSe.pSzOP-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{height:28px;margin-left:-8px;margin-right:10px;min-width:28px;width:28px}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{height:16px;margin-left:-6px;margin-right:8px;min-width:16px;width:16px}.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{-webkit-border-radius:3px;border-radius:3px;margin-left:2px;margin-right:0;padding:0}.nsm7Bb-HzV7m-LgbsSe.JGcpL-RbRzK .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{-webkit-border-radius:18px;border-radius:18px}.nsm7Bb-HzV7m-LgbsSe.pSzOP-SxQuSe.JGcpL-RbRzK .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{-webkit-border-radius:14px;border-radius:14px}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe.JGcpL-RbRzK .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{-webkit-border-radius:8px;border-radius:8px}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-bN97Pc-sM5MNb{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-direction:row;flex-direction:row;justify-content:space-between;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;height:100%;position:relative;width:100%}.nsm7Bb-HzV7m-LgbsSe .oXtfBe-l4eHX{justify-content:center}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-BPrWId{-webkit-flex-grow:1;flex-grow:1;font-family:"Google Sans",arial,sans-serif;font-weight:500;overflow:hidden;text-overflow:ellipsis;vertical-align:top}.nsm7Bb-HzV7m-LgbsSe.purZT-SxQuSe .nsm7Bb-HzV7m-LgbsSe-BPrWId{font-weight:300}.nsm7Bb-HzV7m-LgbsSe .oXtfBe-l4eHX .nsm7Bb-HzV7m-LgbsSe-BPrWId{-webkit-flex-grow:0;flex-grow:0}.nsm7Bb-HzV7m-LgbsSe .nsm7Bb-HzV7m-LgbsSe-MJoBVe{-webkit-transition:background-color .218s;transition:background-color .218s;bottom:0;left:0;position:absolute;right:0;top:0}.nsm7Bb-HzV7m-LgbsSe:hover,.nsm7Bb-HzV7m-LgbsSe:focus{-webkit-box-shadow:none;box-shadow:none;border-color:#d2e3fc;outline:none}.nsm7Bb-HzV7m-LgbsSe:hover .nsm7Bb-HzV7m-LgbsSe-MJoBVe,.nsm7Bb-HzV7m-LgbsSe:focus .nsm7Bb-HzV7m-LgbsSe-MJoBVe{background:rgba(66,133,244,.04)}.nsm7Bb-HzV7m-LgbsSe:active .nsm7Bb-HzV7m-LgbsSe-MJoBVe{background:rgba(66,133,244,.1)}.nsm7Bb-HzV7m-LgbsSe.MFS4be-Ia7Qfc:hover .nsm7Bb-HzV7m-LgbsSe-MJoBVe,.nsm7Bb-HzV7m-LgbsSe.MFS4be-Ia7Qfc:focus .nsm7Bb-HzV7m-LgbsSe-MJoBVe{background:rgba(255,255,255,.24)}.nsm7Bb-HzV7m-LgbsSe.MFS4be-Ia7Qfc:active .nsm7Bb-HzV7m-LgbsSe-MJoBVe{background:rgba(255,255,255,.32)}.nsm7Bb-HzV7m-LgbsSe .n1UuX-DkfjY{-webkit-border-radius:50%;border-radius:50%;display:-webkit-box;display:-webkit-flex;display:flex;height:20px;margin-left:-4px;margin-right:8px;min-width:20px;width:20px}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId{font-family:"Roboto";font-size:12px;text-align:left}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId .ssJRIf,.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId .K4efff .fmcmS{overflow:hidden;text-overflow:ellipsis}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId .K4efff{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;color:#5f6368;fill:#5f6368;font-size:11px;font-weight:400}.nsm7Bb-HzV7m-LgbsSe.jVeSEe.MFS4be-Ia7Qfc .nsm7Bb-HzV7m-LgbsSe-BPrWId .K4efff{color:#e8eaed;fill:#e8eaed}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-BPrWId .K4efff .Bz112c{height:18px;margin:-3px -3px -3px 2px;min-width:18px;width:18px}.nsm7Bb-HzV7m-LgbsSe.jVeSEe .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{-webkit-border-top-left-radius:0;border-top-left-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;margin-left:12px;margin-right:-10px}.nsm7Bb-HzV7m-LgbsSe.jVeSEe.JGcpL-RbRzK .nsm7Bb-HzV7m-LgbsSe-Bz112c-haAclf{-webkit-border-radius:18px;border-radius:18px}.L5Fo6c-sM5MNb{border:0;display:block;left:0;position:relative;top:0}.L5Fo6c-bF1uUb{-webkit-border-radius:4px;border-radius:4px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0}.L5Fo6c-bF1uUb:focus{border:none;outline:none}sentinel{}</style><style id="svelte-9quauz">a.svelte-9quauz{outline:none}</style><style id="svelte-1mm1u63">h1.svelte-1mm1u63{font-size:13px;font-weight:400;overflow:hidden;text-align:center;color:var(--black-400)}h1.svelte-1mm1u63:before,h1.svelte-1mm1u63:after{content:'';display:inline-block;width:50%;margin:0 0.5em 0 -55%;vertical-align:middle;border-bottom:1px solid;border-color:var(--black-225)}h1.svelte-1mm1u63:after{margin:0 -55% 0 0.5em}</style><style id="svelte-1rlgrxv">.show-hide-password.svelte-1rlgrxv{position:absolute;top:8px;right:8px;border:none;background:none;padding:0;cursor:pointer}</style><script async="" src="https://cdn.sstatic.net/Js/full-anon.en.js?v=566bb733c91a"></script><link id="googleidentityservice" type="text/css" media="all" rel="stylesheet" href="https://accounts.google.com/gsi/style"><meta http-equiv="origin-trial" content="AlK2UR5SkAlj8jjdEc9p3F3xuFYlF6LYjAML3EOqw1g26eCwWPjdmecULvBH5MVPoqKYrOfPhYVL71xAXI1IBQoAAAB8eyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="Amm8/NmvvQfhwCib6I7ZsmUxiSCfOxWxHayJwyU1r3gRIItzr7bNQid6O8ZYaE1GSQTa69WwhPC9flq/oYkRBwsAAACCeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiV2ViVmlld1hSZXF1ZXN0ZWRXaXRoRGVwcmVjYXRpb24iLCJleHBpcnkiOjE3NTgwNjcxOTksImlzU3ViZG9tYWluIjp0cnVlfQ=="><meta http-equiv="origin-trial" content="A/ERL66fN363FkXxgDc6F1+ucRUkAhjEca9W3la6xaLnD2Y1lABsqmdaJmPNaUKPKVBRpyMKEhXYl7rSvrQw+AkAAACNeyJvcmlnaW4iOiJodHRwczovL2RvdWJsZWNsaWNrLm5ldDo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MTkzNTk5OTksImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><meta http-equiv="origin-trial" content="A6OdGH3fVf4eKRDbXb4thXA4InNqDJDRhZ8U533U/roYjp4Yau0T3YSuc63vmAs/8ga1cD0E3A7LEq6AXk1uXgsAAACTeyJvcmlnaW4iOiJodHRwczovL2dvb2dsZXN5bmRpY2F0aW9uLmNvbTo0NDMiLCJmZWF0dXJlIjoiRmxlZGdlQmlkZGluZ0FuZEF1Y3Rpb25TZXJ2ZXIiLCJleHBpcnkiOjE3MTkzNTk5OTksImlzU3ViZG9tYWluIjp0cnVlLCJpc1RoaXJkUGFydHkiOnRydWV9"><script src="https://securepubads.g.doubleclick.net/pagead/managed/js/gpt/m202404220101/pubads_impl.js?cb=31083041" async=""></script><script src="https://cdn.cookielaw.org/scripttemplates/202312.1.0/otBannerSdk.js" async="" type="text/javascript"></script><script async="" src="https://cdn.sstatic.net/Js/post-validation.en.js?v=243bf7d290a3"></script><script async="" src="https://cdn.sstatic.net/Js/highlightjs-loader.en.js?v=510e2f94c2bf"></script><style id="onetrust-style">#onetrust-banner-sdk{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}#onetrust-banner-sdk .onetrust-vendors-list-handler{cursor:pointer;color:#1f96db;font-size:inherit;font-weight:bold;text-decoration:none;margin-left:5px}#onetrust-banner-sdk .onetrust-vendors-list-handler:hover{color:#1f96db}#onetrust-banner-sdk:focus{outline:2px solid #000;outline-offset:-2px}#onetrust-banner-sdk a:focus{outline:2px solid #000}#onetrust-banner-sdk #onetrust-accept-btn-handler,#onetrust-banner-sdk #onetrust-reject-all-handler,#onetrust-banner-sdk #onetrust-pc-btn-handler{outline-offset:1px}#onetrust-banner-sdk.ot-bnr-w-logo .ot-bnr-logo{height:64px;width:64px}#onetrust-banner-sdk .ot-tcf2-vendor-count.ot-text-bold{font-weight:bold}#onetrust-banner-sdk .ot-close-icon,#onetrust-pc-sdk .ot-close-icon,#ot-sync-ntfy .ot-close-icon{background-size:contain;background-repeat:no-repeat;background-position:center;height:12px;width:12px}#onetrust-banner-sdk .powered-by-logo,#onetrust-banner-sdk .ot-pc-footer-logo a,#onetrust-pc-sdk .powered-by-logo,#onetrust-pc-sdk .ot-pc-footer-logo a,#ot-sync-ntfy .powered-by-logo,#ot-sync-ntfy .ot-pc-footer-logo a{background-size:contain;background-repeat:no-repeat;background-position:center;height:25px;width:152px;display:block;text-decoration:none;font-size:.75em}#onetrust-banner-sdk .powered-by-logo:hover,#onetrust-banner-sdk .ot-pc-footer-logo a:hover,#onetrust-pc-sdk .powered-by-logo:hover,#onetrust-pc-sdk .ot-pc-footer-logo a:hover,#ot-sync-ntfy .powered-by-logo:hover,#ot-sync-ntfy .ot-pc-footer-logo a:hover{color:#565656}#onetrust-banner-sdk h3 *,#onetrust-banner-sdk h4 *,#onetrust-banner-sdk h6 *,#onetrust-banner-sdk button *,#onetrust-banner-sdk a[data-parent-id] *,#onetrust-pc-sdk h3 *,#onetrust-pc-sdk h4 *,#onetrust-pc-sdk h6 *,#onetrust-pc-sdk button *,#onetrust-pc-sdk a[data-parent-id] *,#ot-sync-ntfy h3 *,#ot-sync-ntfy h4 *,#ot-sync-ntfy h6 *,#ot-sync-ntfy button *,#ot-sync-ntfy a[data-parent-id] *{font-size:inherit;font-weight:inherit;color:inherit}#onetrust-banner-sdk .ot-hide,#onetrust-pc-sdk .ot-hide,#ot-sync-ntfy .ot-hide{display:none !important}#onetrust-banner-sdk button.ot-link-btn:hover,#onetrust-pc-sdk button.ot-link-btn:hover,#ot-sync-ntfy button.ot-link-btn:hover{text-decoration:underline;opacity:1}#onetrust-pc-sdk .ot-sdk-row .ot-sdk-column{padding:0}#onetrust-pc-sdk .ot-sdk-container{padding-right:0}#onetrust-pc-sdk .ot-sdk-row{flex-direction:initial;width:100%}#onetrust-pc-sdk [type=checkbox]:checked,#onetrust-pc-sdk [type=checkbox]:not(:checked){pointer-events:initial}#onetrust-pc-sdk [type=checkbox]:disabled+label::before,#onetrust-pc-sdk [type=checkbox]:disabled+label:after,#onetrust-pc-sdk [type=checkbox]:disabled+label{pointer-events:none;opacity:.7}#onetrust-pc-sdk #vendor-list-content{transform:translate3d(0, 0, 0)}#onetrust-pc-sdk li input[type=checkbox]{z-index:1}#onetrust-pc-sdk li .ot-checkbox label{z-index:2}#onetrust-pc-sdk li .ot-checkbox input[type=checkbox]{height:auto;width:auto}#onetrust-pc-sdk li .host-title a,#onetrust-pc-sdk li .ot-host-name a,#onetrust-pc-sdk li .accordion-text,#onetrust-pc-sdk li .ot-acc-txt{z-index:2;position:relative}#onetrust-pc-sdk input{margin:3px .1ex}#onetrust-pc-sdk .pc-logo,#onetrust-pc-sdk .ot-pc-logo{height:60px;width:180px;background-position:center;background-size:contain;background-repeat:no-repeat;display:inline-flex;justify-content:center;align-items:center}#onetrust-pc-sdk .pc-logo img,#onetrust-pc-sdk .ot-pc-logo img{max-height:100%;max-width:100%}#onetrust-pc-sdk .screen-reader-only,#onetrust-pc-sdk .ot-scrn-rdr,.ot-sdk-cookie-policy .screen-reader-only,.ot-sdk-cookie-policy .ot-scrn-rdr{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#onetrust-pc-sdk.ot-fade-in,.onetrust-pc-dark-filter.ot-fade-in,#onetrust-banner-sdk.ot-fade-in{animation-name:onetrust-fade-in;animation-duration:400ms;animation-timing-function:ease-in-out}#onetrust-pc-sdk.ot-hide{display:none !important}.onetrust-pc-dark-filter.ot-hide{display:none !important}#ot-sdk-btn.ot-sdk-show-settings,#ot-sdk-btn.optanon-show-settings{color:#68b631;border:1px solid #68b631;height:auto;white-space:normal;word-wrap:break-word;padding:.8em 2em;font-size:.8em;line-height:1.2;cursor:pointer;-moz-transition:.1s ease;-o-transition:.1s ease;-webkit-transition:1s ease;transition:.1s ease}#ot-sdk-btn.ot-sdk-show-settings:hover,#ot-sdk-btn.optanon-show-settings:hover{color:#fff;background-color:#68b631}.onetrust-pc-dark-filter{background:rgba(0,0,0,.5);z-index:2147483646;width:100%;height:100%;overflow:hidden;position:fixed;top:0;bottom:0;left:0}@keyframes onetrust-fade-in{0%{opacity:0}100%{opacity:1}}.ot-cookie-label{text-decoration:underline}@media only screen and (min-width: 426px)and (max-width: 896px)and (orientation: landscape){#onetrust-pc-sdk p{font-size:.75em}}#onetrust-banner-sdk .banner-option-input:focus+label{outline:1px solid #000;outline-style:auto}.category-vendors-list-handler+a:focus,.category-vendors-list-handler+a:focus-visible{outline:2px solid #000}#onetrust-pc-sdk .ot-userid-title{margin-top:10px}#onetrust-pc-sdk .ot-userid-title>span,#onetrust-pc-sdk .ot-userid-timestamp>span{font-weight:700}#onetrust-pc-sdk .ot-userid-desc{font-style:italic}#onetrust-pc-sdk .ot-host-desc a{pointer-events:initial}#onetrust-pc-sdk .ot-ven-hdr>p a{position:relative;z-index:2;pointer-events:initial}#onetrust-pc-sdk .ot-vnd-serv .ot-vnd-item .ot-vnd-info a,#onetrust-pc-sdk .ot-vs-list .ot-vnd-item .ot-vnd-info a{margin-right:auto}#onetrust-pc-sdk .ot-pc-footer-logo img{width:136px;height:16px}#onetrust-pc-sdk .ot-pur-vdr-count{font-weight:400;font-size:.7rem;padding-top:3px;display:block}#onetrust-banner-sdk .ot-optout-signal,#onetrust-pc-sdk .ot-optout-signal{border:1px solid #32ae88;border-radius:3px;padding:5px;margin-bottom:10px;background-color:#f9fffa;font-size:.85rem;line-height:2}#onetrust-banner-sdk .ot-optout-signal .ot-optout-icon,#onetrust-pc-sdk .ot-optout-signal .ot-optout-icon{display:inline;margin-right:5px}#onetrust-banner-sdk .ot-optout-signal svg,#onetrust-pc-sdk .ot-optout-signal svg{height:20px;width:30px;transform:scale(0.5)}#onetrust-banner-sdk .ot-optout-signal svg path,#onetrust-pc-sdk .ot-optout-signal svg path{fill:#32ae88}#onetrust-banner-sdk,#onetrust-pc-sdk,#ot-sdk-cookie-policy,#ot-sync-ntfy{font-size:16px}#onetrust-banner-sdk *,#onetrust-banner-sdk ::after,#onetrust-banner-sdk ::before,#onetrust-pc-sdk *,#onetrust-pc-sdk ::after,#onetrust-pc-sdk ::before,#ot-sdk-cookie-policy *,#ot-sdk-cookie-policy ::after,#ot-sdk-cookie-policy ::before,#ot-sync-ntfy *,#ot-sync-ntfy ::after,#ot-sync-ntfy ::before{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}#onetrust-banner-sdk div,#onetrust-banner-sdk span,#onetrust-banner-sdk h1,#onetrust-banner-sdk h2,#onetrust-banner-sdk h3,#onetrust-banner-sdk h4,#onetrust-banner-sdk h5,#onetrust-banner-sdk h6,#onetrust-banner-sdk p,#onetrust-banner-sdk img,#onetrust-banner-sdk svg,#onetrust-banner-sdk button,#onetrust-banner-sdk section,#onetrust-banner-sdk a,#onetrust-banner-sdk label,#onetrust-banner-sdk input,#onetrust-banner-sdk ul,#onetrust-banner-sdk li,#onetrust-banner-sdk nav,#onetrust-banner-sdk table,#onetrust-banner-sdk thead,#onetrust-banner-sdk tr,#onetrust-banner-sdk td,#onetrust-banner-sdk tbody,#onetrust-banner-sdk .ot-main-content,#onetrust-banner-sdk .ot-toggle,#onetrust-banner-sdk #ot-content,#onetrust-banner-sdk #ot-pc-content,#onetrust-banner-sdk .checkbox,#onetrust-pc-sdk div,#onetrust-pc-sdk span,#onetrust-pc-sdk h1,#onetrust-pc-sdk h2,#onetrust-pc-sdk h3,#onetrust-pc-sdk h4,#onetrust-pc-sdk h5,#onetrust-pc-sdk h6,#onetrust-pc-sdk p,#onetrust-pc-sdk img,#onetrust-pc-sdk svg,#onetrust-pc-sdk button,#onetrust-pc-sdk section,#onetrust-pc-sdk a,#onetrust-pc-sdk label,#onetrust-pc-sdk input,#onetrust-pc-sdk ul,#onetrust-pc-sdk li,#onetrust-pc-sdk nav,#onetrust-pc-sdk table,#onetrust-pc-sdk thead,#onetrust-pc-sdk tr,#onetrust-pc-sdk td,#onetrust-pc-sdk tbody,#onetrust-pc-sdk .ot-main-content,#onetrust-pc-sdk .ot-toggle,#onetrust-pc-sdk #ot-content,#onetrust-pc-sdk #ot-pc-content,#onetrust-pc-sdk .checkbox,#ot-sdk-cookie-policy div,#ot-sdk-cookie-policy span,#ot-sdk-cookie-policy h1,#ot-sdk-cookie-policy h2,#ot-sdk-cookie-policy h3,#ot-sdk-cookie-policy h4,#ot-sdk-cookie-policy h5,#ot-sdk-cookie-policy h6,#ot-sdk-cookie-policy p,#ot-sdk-cookie-policy img,#ot-sdk-cookie-policy svg,#ot-sdk-cookie-policy button,#ot-sdk-cookie-policy section,#ot-sdk-cookie-policy a,#ot-sdk-cookie-policy label,#ot-sdk-cookie-policy input,#ot-sdk-cookie-policy ul,#ot-sdk-cookie-policy li,#ot-sdk-cookie-policy nav,#ot-sdk-cookie-policy table,#ot-sdk-cookie-policy thead,#ot-sdk-cookie-policy tr,#ot-sdk-cookie-policy td,#ot-sdk-cookie-policy tbody,#ot-sdk-cookie-policy .ot-main-content,#ot-sdk-cookie-policy .ot-toggle,#ot-sdk-cookie-policy #ot-content,#ot-sdk-cookie-policy #ot-pc-content,#ot-sdk-cookie-policy .checkbox,#ot-sync-ntfy div,#ot-sync-ntfy span,#ot-sync-ntfy h1,#ot-sync-ntfy h2,#ot-sync-ntfy h3,#ot-sync-ntfy h4,#ot-sync-ntfy h5,#ot-sync-ntfy h6,#ot-sync-ntfy p,#ot-sync-ntfy img,#ot-sync-ntfy svg,#ot-sync-ntfy button,#ot-sync-ntfy section,#ot-sync-ntfy a,#ot-sync-ntfy label,#ot-sync-ntfy input,#ot-sync-ntfy ul,#ot-sync-ntfy li,#ot-sync-ntfy nav,#ot-sync-ntfy table,#ot-sync-ntfy thead,#ot-sync-ntfy tr,#ot-sync-ntfy td,#ot-sync-ntfy tbody,#ot-sync-ntfy .ot-main-content,#ot-sync-ntfy .ot-toggle,#ot-sync-ntfy #ot-content,#ot-sync-ntfy #ot-pc-content,#ot-sync-ntfy .checkbox{font-family:inherit;font-weight:normal;-webkit-font-smoothing:auto;letter-spacing:normal;line-height:normal;padding:0;margin:0;height:auto;min-height:0;max-height:none;width:auto;min-width:0;max-width:none;border-radius:0;border:none;clear:none;float:none;position:static;bottom:auto;left:auto;right:auto;top:auto;text-align:left;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;white-space:normal;background:none;overflow:visible;vertical-align:baseline;visibility:visible;z-index:auto;box-shadow:none}#onetrust-banner-sdk label:before,#onetrust-banner-sdk label:after,#onetrust-banner-sdk .checkbox:after,#onetrust-banner-sdk .checkbox:before,#onetrust-pc-sdk label:before,#onetrust-pc-sdk label:after,#onetrust-pc-sdk .checkbox:after,#onetrust-pc-sdk .checkbox:before,#ot-sdk-cookie-policy label:before,#ot-sdk-cookie-policy label:after,#ot-sdk-cookie-policy .checkbox:after,#ot-sdk-cookie-policy .checkbox:before,#ot-sync-ntfy label:before,#ot-sync-ntfy label:after,#ot-sync-ntfy .checkbox:after,#ot-sync-ntfy .checkbox:before{content:"";content:none}#onetrust-banner-sdk .ot-sdk-container,#onetrust-pc-sdk .ot-sdk-container,#ot-sdk-cookie-policy .ot-sdk-container{position:relative;width:100%;max-width:100%;margin:0 auto;padding:0 20px;box-sizing:border-box}#onetrust-banner-sdk .ot-sdk-column,#onetrust-banner-sdk .ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-column,#onetrust-pc-sdk .ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-column,#ot-sdk-cookie-policy .ot-sdk-columns{width:100%;float:left;box-sizing:border-box;padding:0;display:initial}@media(min-width: 400px){#onetrust-banner-sdk .ot-sdk-container,#onetrust-pc-sdk .ot-sdk-container,#ot-sdk-cookie-policy .ot-sdk-container{width:90%;padding:0}}@media(min-width: 550px){#onetrust-banner-sdk .ot-sdk-container,#onetrust-pc-sdk .ot-sdk-container,#ot-sdk-cookie-policy .ot-sdk-container{width:100%}#onetrust-banner-sdk .ot-sdk-column,#onetrust-banner-sdk .ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-column,#onetrust-pc-sdk .ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-column,#ot-sdk-cookie-policy .ot-sdk-columns{margin-left:4%}#onetrust-banner-sdk .ot-sdk-column:first-child,#onetrust-banner-sdk .ot-sdk-columns:first-child,#onetrust-pc-sdk .ot-sdk-column:first-child,#onetrust-pc-sdk .ot-sdk-columns:first-child,#ot-sdk-cookie-policy .ot-sdk-column:first-child,#ot-sdk-cookie-policy .ot-sdk-columns:first-child{margin-left:0}#onetrust-banner-sdk .ot-sdk-two.ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-two.ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-two.ot-sdk-columns{width:13.3333333333%}#onetrust-banner-sdk .ot-sdk-three.ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-three.ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-three.ot-sdk-columns{width:22%}#onetrust-banner-sdk .ot-sdk-four.ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-four.ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-four.ot-sdk-columns{width:30.6666666667%}#onetrust-banner-sdk .ot-sdk-eight.ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-eight.ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-eight.ot-sdk-columns{width:65.3333333333%}#onetrust-banner-sdk .ot-sdk-nine.ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-nine.ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-nine.ot-sdk-columns{width:74%}#onetrust-banner-sdk .ot-sdk-ten.ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-ten.ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-ten.ot-sdk-columns{width:82.6666666667%}#onetrust-banner-sdk .ot-sdk-eleven.ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-eleven.ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-eleven.ot-sdk-columns{width:91.3333333333%}#onetrust-banner-sdk .ot-sdk-twelve.ot-sdk-columns,#onetrust-pc-sdk .ot-sdk-twelve.ot-sdk-columns,#ot-sdk-cookie-policy .ot-sdk-twelve.ot-sdk-columns{width:100%;margin-left:0}}#onetrust-banner-sdk h1,#onetrust-banner-sdk h2,#onetrust-banner-sdk h3,#onetrust-banner-sdk h4,#onetrust-banner-sdk h5,#onetrust-banner-sdk h6,#onetrust-pc-sdk h1,#onetrust-pc-sdk h2,#onetrust-pc-sdk h3,#onetrust-pc-sdk h4,#onetrust-pc-sdk h5,#onetrust-pc-sdk h6,#ot-sdk-cookie-policy h1,#ot-sdk-cookie-policy h2,#ot-sdk-cookie-policy h3,#ot-sdk-cookie-policy h4,#ot-sdk-cookie-policy h5,#ot-sdk-cookie-policy h6{margin-top:0;font-weight:600;font-family:inherit}#onetrust-banner-sdk h1,#onetrust-pc-sdk h1,#ot-sdk-cookie-policy h1{font-size:1.5rem;line-height:1.2}#onetrust-banner-sdk h2,#onetrust-pc-sdk h2,#ot-sdk-cookie-policy h2{font-size:1.5rem;line-height:1.25}#onetrust-banner-sdk h3,#onetrust-pc-sdk h3,#ot-sdk-cookie-policy h3{font-size:1.5rem;line-height:1.3}#onetrust-banner-sdk h4,#onetrust-pc-sdk h4,#ot-sdk-cookie-policy h4{font-size:1.5rem;line-height:1.35}#onetrust-banner-sdk h5,#onetrust-pc-sdk h5,#ot-sdk-cookie-policy h5{font-size:1.5rem;line-height:1.5}#onetrust-banner-sdk h6,#onetrust-pc-sdk h6,#ot-sdk-cookie-policy h6{font-size:1.5rem;line-height:1.6}@media(min-width: 550px){#onetrust-banner-sdk h1,#onetrust-pc-sdk h1,#ot-sdk-cookie-policy h1{font-size:1.5rem}#onetrust-banner-sdk h2,#onetrust-pc-sdk h2,#ot-sdk-cookie-policy h2{font-size:1.5rem}#onetrust-banner-sdk h3,#onetrust-pc-sdk h3,#ot-sdk-cookie-policy h3{font-size:1.5rem}#onetrust-banner-sdk h4,#onetrust-pc-sdk h4,#ot-sdk-cookie-policy h4{font-size:1.5rem}#onetrust-banner-sdk h5,#onetrust-pc-sdk h5,#ot-sdk-cookie-policy h5{font-size:1.5rem}#onetrust-banner-sdk h6,#onetrust-pc-sdk h6,#ot-sdk-cookie-policy h6{font-size:1.5rem}}#onetrust-banner-sdk p,#onetrust-pc-sdk p,#ot-sdk-cookie-policy p{margin:0 0 1em 0;font-family:inherit;line-height:normal}#onetrust-banner-sdk a,#onetrust-pc-sdk a,#ot-sdk-cookie-policy a{color:#565656;text-decoration:underline}#onetrust-banner-sdk a:hover,#onetrust-pc-sdk a:hover,#ot-sdk-cookie-policy a:hover{color:#565656;text-decoration:none}#onetrust-banner-sdk .ot-sdk-button,#onetrust-banner-sdk button,#onetrust-pc-sdk .ot-sdk-button,#onetrust-pc-sdk button,#ot-sdk-cookie-policy .ot-sdk-button,#ot-sdk-cookie-policy button{margin-bottom:1rem;font-family:inherit}#onetrust-banner-sdk .ot-sdk-button,#onetrust-banner-sdk button,#onetrust-pc-sdk .ot-sdk-button,#onetrust-pc-sdk button,#ot-sdk-cookie-policy .ot-sdk-button,#ot-sdk-cookie-policy button{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:.9em;font-weight:400;line-height:38px;letter-spacing:.01em;text-decoration:none;white-space:nowrap;background-color:rgba(0,0,0,0);border-radius:2px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}#onetrust-banner-sdk .ot-sdk-button:hover,#onetrust-banner-sdk :not(.ot-leg-btn-container)>button:not(.ot-link-btn):hover,#onetrust-banner-sdk :not(.ot-leg-btn-container)>button:not(.ot-link-btn):focus,#onetrust-pc-sdk .ot-sdk-button:hover,#onetrust-pc-sdk :not(.ot-leg-btn-container)>button:not(.ot-link-btn):hover,#onetrust-pc-sdk :not(.ot-leg-btn-container)>button:not(.ot-link-btn):focus,#ot-sdk-cookie-policy .ot-sdk-button:hover,#ot-sdk-cookie-policy :not(.ot-leg-btn-container)>button:not(.ot-link-btn):hover,#ot-sdk-cookie-policy :not(.ot-leg-btn-container)>button:not(.ot-link-btn):focus{color:#333;border-color:#888;opacity:.7}#onetrust-banner-sdk .ot-sdk-button:focus,#onetrust-banner-sdk :not(.ot-leg-btn-container)>button:focus,#onetrust-pc-sdk .ot-sdk-button:focus,#onetrust-pc-sdk :not(.ot-leg-btn-container)>button:focus,#ot-sdk-cookie-policy .ot-sdk-button:focus,#ot-sdk-cookie-policy :not(.ot-leg-btn-container)>button:focus{outline:2px solid #000}#onetrust-banner-sdk .ot-sdk-button.ot-sdk-button-primary,#onetrust-banner-sdk button.ot-sdk-button-primary,#onetrust-banner-sdk input[type=submit].ot-sdk-button-primary,#onetrust-banner-sdk input[type=reset].ot-sdk-button-primary,#onetrust-banner-sdk input[type=button].ot-sdk-button-primary,#onetrust-pc-sdk .ot-sdk-button.ot-sdk-button-primary,#onetrust-pc-sdk button.ot-sdk-button-primary,#onetrust-pc-sdk input[type=submit].ot-sdk-button-primary,#onetrust-pc-sdk input[type=reset].ot-sdk-button-primary,#onetrust-pc-sdk input[type=button].ot-sdk-button-primary,#ot-sdk-cookie-policy .ot-sdk-button.ot-sdk-button-primary,#ot-sdk-cookie-policy button.ot-sdk-button-primary,#ot-sdk-cookie-policy input[type=submit].ot-sdk-button-primary,#ot-sdk-cookie-policy input[type=reset].ot-sdk-button-primary,#ot-sdk-cookie-policy input[type=button].ot-sdk-button-primary{color:#fff;background-color:#33c3f0;border-color:#33c3f0}#onetrust-banner-sdk .ot-sdk-button.ot-sdk-button-primary:hover,#onetrust-banner-sdk button.ot-sdk-button-primary:hover,#onetrust-banner-sdk input[type=submit].ot-sdk-button-primary:hover,#onetrust-banner-sdk input[type=reset].ot-sdk-button-primary:hover,#onetrust-banner-sdk input[type=button].ot-sdk-button-primary:hover,#onetrust-banner-sdk .ot-sdk-button.ot-sdk-button-primary:focus,#onetrust-banner-sdk button.ot-sdk-button-primary:focus,#onetrust-banner-sdk input[type=submit].ot-sdk-button-primary:focus,#onetrust-banner-sdk input[type=reset].ot-sdk-button-primary:focus,#onetrust-banner-sdk input[type=button].ot-sdk-button-primary:focus,#onetrust-pc-sdk .ot-sdk-button.ot-sdk-button-primary:hover,#onetrust-pc-sdk button.ot-sdk-button-primary:hover,#onetrust-pc-sdk input[type=submit].ot-sdk-button-primary:hover,#onetrust-pc-sdk input[type=reset].ot-sdk-button-primary:hover,#onetrust-pc-sdk input[type=button].ot-sdk-button-primary:hover,#onetrust-pc-sdk .ot-sdk-button.ot-sdk-button-primary:focus,#onetrust-pc-sdk button.ot-sdk-button-primary:focus,#onetrust-pc-sdk input[type=submit].ot-sdk-button-primary:focus,#onetrust-pc-sdk input[type=reset].ot-sdk-button-primary:focus,#onetrust-pc-sdk input[type=button].ot-sdk-button-primary:focus,#ot-sdk-cookie-policy .ot-sdk-button.ot-sdk-button-primary:hover,#ot-sdk-cookie-policy button.ot-sdk-button-primary:hover,#ot-sdk-cookie-policy input[type=submit].ot-sdk-button-primary:hover,#ot-sdk-cookie-policy input[type=reset].ot-sdk-button-primary:hover,#ot-sdk-cookie-policy input[type=button].ot-sdk-button-primary:hover,#ot-sdk-cookie-policy .ot-sdk-button.ot-sdk-button-primary:focus,#ot-sdk-cookie-policy button.ot-sdk-button-primary:focus,#ot-sdk-cookie-policy input[type=submit].ot-sdk-button-primary:focus,#ot-sdk-cookie-policy input[type=reset].ot-sdk-button-primary:focus,#ot-sdk-cookie-policy input[type=button].ot-sdk-button-primary:focus{color:#fff;background-color:#1eaedb;border-color:#1eaedb}#onetrust-banner-sdk input[type=text],#onetrust-pc-sdk input[type=text],#ot-sdk-cookie-policy input[type=text]{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}#onetrust-banner-sdk input[type=text],#onetrust-pc-sdk input[type=text],#ot-sdk-cookie-policy input[type=text]{-webkit-appearance:none;-moz-appearance:none;appearance:none}#onetrust-banner-sdk input[type=text]:focus,#onetrust-pc-sdk input[type=text]:focus,#ot-sdk-cookie-policy input[type=text]:focus{border:1px solid #000;outline:0}#onetrust-banner-sdk label,#onetrust-pc-sdk label,#ot-sdk-cookie-policy label{display:block;margin-bottom:.5rem;font-weight:600}#onetrust-banner-sdk input[type=checkbox],#onetrust-pc-sdk input[type=checkbox],#ot-sdk-cookie-policy input[type=checkbox]{display:inline}#onetrust-banner-sdk ul,#onetrust-pc-sdk ul,#ot-sdk-cookie-policy ul{list-style:circle inside}#onetrust-banner-sdk ul,#onetrust-pc-sdk ul,#ot-sdk-cookie-policy ul{padding-left:0;margin-top:0}#onetrust-banner-sdk ul ul,#onetrust-pc-sdk ul ul,#ot-sdk-cookie-policy ul ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}#onetrust-banner-sdk li,#onetrust-pc-sdk li,#ot-sdk-cookie-policy li{margin-bottom:1rem}#onetrust-banner-sdk th,#onetrust-banner-sdk td,#onetrust-pc-sdk th,#onetrust-pc-sdk td,#ot-sdk-cookie-policy th,#ot-sdk-cookie-policy td{padding:12px 15px;text-align:left;border-bottom:1px solid #e1e1e1}#onetrust-banner-sdk button,#onetrust-pc-sdk button,#ot-sdk-cookie-policy button{margin-bottom:1rem;font-family:inherit}#onetrust-banner-sdk .ot-sdk-container:after,#onetrust-banner-sdk .ot-sdk-row:after,#onetrust-pc-sdk .ot-sdk-container:after,#onetrust-pc-sdk .ot-sdk-row:after,#ot-sdk-cookie-policy .ot-sdk-container:after,#ot-sdk-cookie-policy .ot-sdk-row:after{content:"";display:table;clear:both}#onetrust-banner-sdk .ot-sdk-row,#onetrust-pc-sdk .ot-sdk-row,#ot-sdk-cookie-policy .ot-sdk-row{margin:0;max-width:none;display:block}#onetrust-banner-sdk.otFloatingRoundedCorner{position:fixed;z-index:2147483645;background-color:#fff;width:26%;max-width:375px;border-radius:2.5px;bottom:1em;left:1em;font-size:16px;max-height:90%;overflow-x:hidden;overflow-y:auto;box-shadow:0 0 18px rgba(0,0,0,.2)}#onetrust-banner-sdk.otFloatingRoundedCorner.otRelFont{font-size:1rem}#onetrust-banner-sdk.otFloatingRoundedCorner::-webkit-scrollbar{width:11px}#onetrust-banner-sdk.otFloatingRoundedCorner::-webkit-scrollbar-thumb{border-radius:10px;background:#c1c1c1}#onetrust-banner-sdk.otFloatingRoundedCorner{scrollbar-arrow-color:#c1c1c1;scrollbar-darkshadow-color:#c1c1c1;scrollbar-face-color:#c1c1c1;scrollbar-shadow-color:#c1c1c1}#onetrust-banner-sdk.otFloatingRoundedCorner .ot-gv-list-handler{float:left;font-size:.82em;padding:0 25px 30px 25px;margin-bottom:0;border:0;line-height:normal;height:auto;width:auto}#onetrust-banner-sdk.otFloatingRoundedCorner.ot-bottom-left[dir=rtl]{right:1em}#onetrust-banner-sdk.otFloatingRoundedCorner.ot-bottom-right{right:1em;left:auto}#onetrust-banner-sdk.otFloatingRoundedCorner.ot-bottom-right[dir=rtl]{left:1em;right:auto}#onetrust-banner-sdk h3,#onetrust-banner-sdk p{color:dimgray}#onetrust-banner-sdk h3{margin-bottom:0}#onetrust-banner-sdk .banner-header{margin-left:20px;margin-bottom:20px;margin-right:10px}#onetrust-banner-sdk .ot-close-icon{width:44px;height:44px;background-size:12px;display:inline-block;padding:0;border:none}#onetrust-banner-sdk #onetrust-policy-text,#onetrust-banner-sdk .ot-b-addl-desc{clear:both;float:left;font-size:.82em;line-height:1.5;padding:10px 20px 20px 20px;margin:0}#onetrust-banner-sdk #onetrust-policy-text>*,#onetrust-banner-sdk .ot-b-addl-desc>*{margin-bottom:0px;font-size:inherit}#onetrust-banner-sdk .ot-optout-signal{margin:3.125rem 1.25rem 1.25rem 1.25rem}#onetrust-banner-sdk .ot-b-addl-desc{display:block}#onetrust-banner-sdk #onetrust-policy{margin-top:20px}#onetrust-banner-sdk #onetrust-policy h3{font-size:1em;line-height:1.4}#onetrust-banner-sdk #onetrust-button-group-parent{padding:0 25px 30px 25px}#onetrust-banner-sdk #onetrust-button-group{text-align:center;display:inline-block;width:100%}#onetrust-banner-sdk #onetrust-accept-btn-handler,#onetrust-banner-sdk #onetrust-reject-all-handler{background-color:#6cc04a;color:#fff;border-color:#6cc04a;margin-right:1em}#onetrust-banner-sdk .banner-actions-container{text-align:center}#onetrust-banner-sdk #onetrust-pc-btn-handler{background-color:#6cc04a;color:#fff;border:1px solid #6cc04a}#onetrust-banner-sdk #onetrust-accept-btn-handler,#onetrust-banner-sdk #onetrust-reject-all-handler,#onetrust-banner-sdk #onetrust-pc-btn-handler{width:100%;padding:12px 10px;font-size:.82em;font-weight:600;line-height:1.4;letter-spacing:.05em;height:auto;white-space:normal;word-break:break-word;word-wrap:break-word}#onetrust-banner-sdk #onetrust-pc-btn-handler.cookie-setting-link{background-color:#fff;border:none;color:#6cc04a;text-decoration:underline}#onetrust-banner-sdk #onetrust-policy-title,#onetrust-banner-sdk #onetrust-close-btn-container{display:inline-block}#onetrust-banner-sdk #onetrust-policy-title{font-weight:600;font-size:1em;padding:0 0 10px 25px;float:left;width:80%}#onetrust-banner-sdk #onetrust-close-btn-container{position:absolute;right:3px;top:8px}#onetrust-banner-sdk button{margin-bottom:.6rem}#onetrust-banner-sdk .banner_logo{display:none}#onetrust-banner-sdk.ot-bnr-w-logo .banner-header{margin-bottom:0;margin-left:20px}#onetrust-banner-sdk.ot-bnr-w-logo #onetrust-group-container{margin-top:0px}#onetrust-banner-sdk #banner-options{float:left;padding:0 25px 20px 25px;width:calc(100% - 50px)}#onetrust-banner-sdk .banner-option-header{cursor:pointer;display:inline-block}#onetrust-banner-sdk .banner-option-header :first-child{color:dimgray;font-weight:bold;float:left}#onetrust-banner-sdk .banner-option-header .ot-arrow-container{display:inline-block;border-top:6px solid rgba(0,0,0,0);border-bottom:6px solid rgba(0,0,0,0);border-left:6px solid dimgray;margin-left:10px;vertical-align:middle;transition:all 300ms ease-in 0s;-webkit-transition:all 300ms ease-in 0s;-moz-transition:all 300ms ease-in 0s;-o-transition:all 300ms ease-in 0s}#onetrust-banner-sdk .banner-option-details{display:none;font-size:.83em;line-height:1.5;height:0px;padding:10px 10px 5px 10px;transition:all 300ms ease-in 0s;-webkit-transition:all 300ms ease-in 0s;-moz-transition:all 300ms ease-in 0s;-o-transition:all 300ms ease-in 0s}#onetrust-banner-sdk .banner-option-details *{font-size:inherit;line-height:inherit;color:dimgray}#onetrust-banner-sdk .banner-option-input{cursor:pointer;width:auto;border:none;height:auto;padding:0;padding-right:3px;margin:0 0 6px;font-size:.82em;line-height:1.4}#onetrust-banner-sdk .banner-option-input *{pointer-events:none;line-height:inherit;font-size:inherit}#onetrust-banner-sdk .banner-option-input[aria-expanded=true]~.banner-option-details{height:auto;display:block}#onetrust-banner-sdk .banner-option-input[aria-expanded=true] .ot-arrow-container{transform:rotate(90deg)}#onetrust-banner-sdk .ot-dpd-container{float:left;padding:0 20px 4px 20px;clear:both}#onetrust-banner-sdk .ot-dpd-container .ot-dpd-title{font-weight:bold;padding-bottom:10px}#onetrust-banner-sdk .ot-dpd-container .ot-dpd-desc{font-size:.82em;line-height:1.5}#onetrust-banner-sdk .ot-dpd-container .ot-dpd-desc>.ot-b-addl-desc{margin-top:10px;padding:0}#onetrust-banner-sdk .ot-dpd-container .ot-dpd-desc *{font-size:inherit;line-height:inherit}#onetrust-banner-sdk .ot-dpd-container .ot-dpd-desc .onetrust-vendors-list-handler{display:block;margin-left:0px;margin-top:5px;clear:both;padding:0;margin-bottom:0;border:0;height:auto;width:auto}#onetrust-banner-sdk #onetrust-policy .ot-dpd-title{font-size:.88em}#onetrust-banner-sdk.ot-close-btn-link #onetrust-close-btn-container{top:15px;transform:none;right:15px}#onetrust-banner-sdk.ot-close-btn-link #onetrust-close-btn-container button{padding:0;white-space:pre-wrap;border:none;height:auto;line-height:1.5;text-decoration:underline;font-size:.69em}#onetrust-banner-sdk.ot-close-btn-link #onetrust-group-container{margin-top:20px}#onetrust-banner-sdk.ot-wo-title #onetrust-group-container{margin-top:20px}@media only screen and (max-width: 425px){#onetrust-banner-sdk #onetrust-button-group-parent{padding:0 25px 30px 25px}#onetrust-banner-sdk .ot-sdk-container{width:100%;padding:0}#onetrust-banner-sdk.otFloatingRoundedCorner{width:92%;max-width:100%;left:0;bottom:0}}@media only screen and (min-width: 426px)and (max-width: 896px){#onetrust-banner-sdk .ot-sdk-container{width:100%}#onetrust-banner-sdk #onetrust-button-group-parent{padding:0 25px 30px 25px}#onetrust-banner-sdk #onetrust-accept-btn-handler,#onetrust-banner-sdk #onetrust-reject-all-handler,#onetrust-banner-sdk #onetrust-pc-btn-handler{width:45%}#onetrust-banner-sdk #onetrust-reject-all-handler{margin-right:0}#onetrust-banner-sdk #onetrust-button-group-parent:not(.has-reject-all-button) #onetrust-accept-btn-handler{margin-right:0}#onetrust-banner-sdk.otFloatingRoundedCorner{width:100%;max-width:94%;left:0;bottom:0}}@media only screen and (max-width: 896px){#onetrust-banner-sdk.ot-bottom-left.otFloatingRoundedCorner[dir=rtl]{right:auto}}@media only screen and (min-width: 768px){#onetrust-banner-sdk #onetrust-accept-btn-handler,#onetrust-banner-sdk #onetrust-reject-all-handler,#onetrust-banner-sdk #onetrust-pc-btn-handler{width:100%}#onetrust-banner-sdk .banner-header{margin-left:40px;margin-bottom:20px;margin-right:15px}#onetrust-banner-sdk #onetrust-button-group-parent{padding:0 25px 30px 25px}#onetrust-banner-sdk #onetrust-policy-text,#onetrust-banner-sdk :not(.ot-dpd-desc)>.ot-b-addl-desc,#onetrust-banner-sdk .ot-dpd-container{padding:10px 25px}#onetrust-banner-sdk .ot-optout-signal{margin:3.125rem 1.5625rem .625rem}#onetrust-banner-sdk .ot-dpd-container{padding-bottom:4px}#onetrust-banner-sdk #banner-options{padding:0 25px 20px 25px;width:calc(100% - 50px)}#onetrust-banner-sdk #banner-options .banner-option{margin-bottom:6px}#onetrust-banner-sdk #onetrust-close-btn-container{right:3px}#onetrust-banner-sdk.otFloatingRoundedCorner{width:48%}}
    #onetrust-consent-sdk #onetrust-banner-sdk {background-color: #252627;}
        #onetrust-consent-sdk #onetrust-policy-title,
                #onetrust-consent-sdk #onetrust-policy-text,
                #onetrust-consent-sdk .ot-b-addl-desc,
                #onetrust-consent-sdk .ot-dpd-desc,
                #onetrust-consent-sdk .ot-dpd-title,
                #onetrust-consent-sdk #onetrust-policy-text *:not(.onetrust-vendors-list-handler),
                #onetrust-consent-sdk .ot-dpd-desc *:not(.onetrust-vendors-list-handler),
                #onetrust-consent-sdk #onetrust-banner-sdk #banner-options *,
                #onetrust-banner-sdk .ot-cat-header,
                #onetrust-banner-sdk .ot-optout-signal
                {
                    color: #E3E5E8;
                }
        #onetrust-consent-sdk #onetrust-banner-sdk .banner-option-details {
                background-color: #E3E5E8;}
         #onetrust-consent-sdk #onetrust-banner-sdk a[href],
                #onetrust-consent-sdk #onetrust-banner-sdk a[href] font,
                #onetrust-consent-sdk #onetrust-banner-sdk .ot-link-btn
                    {
                        color: #90C4F9;
                    }#onetrust-consent-sdk #onetrust-accept-btn-handler,
                     #onetrust-banner-sdk #onetrust-reject-all-handler {
                        background-color: #90C4F9;border-color: #90C4F9;
            color: #252627;
        }
        #onetrust-consent-sdk #onetrust-banner-sdk *:focus,
        #onetrust-consent-sdk #onetrust-banner-sdk:focus {
           outline-color: #FFFFFF;
           outline-width: 1px;
        }
        #onetrust-consent-sdk #onetrust-pc-btn-handler,
        #onetrust-consent-sdk #onetrust-pc-btn-handler.cookie-setting-link {
            color: #90C4F9; border-color: #90C4F9;
            background-color:
            #252627;
        }#onetrust-banner-sdk.ot-close-btn-link .banner-close-button {color: #90C4F9}#onetrust-banner-sdk {
width: 32.41rem !important;
padding: 32px !important;
max-width: 100% !important;
max-width: calc(100% - 32px) !important;
border-radius: 8px !important;
left: 16px !important;
right: 16px !important;
font-family: Arial, Helvetica, sans-serif;
}

#onetrust-banner-sdk #onetrust-button-group-parent {
padding: 0 !important;
}
#onetrust-banner-sdk #onetrust-policy-title {
padding: 0 0 4px 0 !important;

}
#onetrust-banner-sdk #onetrust-policy-text {
padding: 0 !important;
margin-bottom: 8px !important;
line-height: 1.30769231 !important;
}

#onetrust-banner-sdk #onetrust-policy-text a {
color: #fff !important;
}

#onetrust-banner-sdk #onetrust-button-group button {
font-weight: normal !important;
border-radius: 6px !important;
padding: .8em !important;
letter-spacing: normal !important;
text-decoration: none !important;
border: 1px solid transparent !important;
margin: 0 !important;
line-height: 1.15 !important;
width: 100% !important;
}

#onetrust-banner-sdk #onetrust-button-group button#onetrust-pc-btn-handler {
background-color: #252627 !important;
color: #90C4F9 !important;
border-color: #90C4F9 !important;
}

#onetrust-banner-sdk #onetrust-button-group .banner-actions-container button {
margin: 0 4px !important;
}

#onetrust-banner-sdk .banner-actions-container {
display: flex;
margin: 8px -4px;
}

#onetrust-banner-sdk #onetrust-policy {
padding-top: 96px;
margin: 0 !important;
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Cpath d='M35 45.5a7.5 7.5 0 11-15 0 7.5 7.5 0 0115 0zM63.5 63a7.5 7.5 0 100-15 7.5 7.5 0 000 15zm-19 19a7.5 7.5 0 100-15 7.5 7.5 0 000 15z' opacity='.2' fill='%23379fef'%3E%3C/path%3E%3Cpath d='M56.99 2.53a23.1 23.1 0 0114.66 6.15h.01l.01.02c.57.55.61 1.27.5 1.74v.07a10.95 10.95 0 01-3.07 4.77 9 9 0 01-6.9 2.5 10.34 10.34 0 01-9.72-10.44v-.08a10 10 0 011.03-3.74l.01-.03.02-.02c.28-.5.82-.92 1.52-.95.63-.02 1.27-.02 1.93.01zm12.04 7.83a20.1 20.1 0 00-12.2-4.83l-.92-.03c-.23.6-.38 1.25-.43 1.94a7.34 7.34 0 006.95 7.34 6 6 0 004.64-1.7c.94-.88 1.6-1.9 1.96-2.72zm15.3 8.76a6.84 6.84 0 00-5.09-.24 7.9 7.9 0 00-3.28 2.05 1.8 1.8 0 00-.3 1.95l.02.02v.02a15.16 15.16 0 008.74 7.47c.64.23 1.32.08 1.8-.33a6.63 6.63 0 001.63-1.97l.01-.03.01-.03c1.67-3.5-.12-7.32-3.54-8.91zm-5.5 3.28c.36-.25.82-.5 1.35-.67.92-.3 1.92-.35 2.89.1 2.14 1 2.92 3.14 2.11 4.88-.12.21-.26.41-.43.6l-.26-.1a12.29 12.29 0 01-5.66-4.81zM32 24a2 2 0 11-4 0 2 2 0 014 0zm12 21a2 2 0 11-4 0 2 2 0 014 0zm36 4a2 2 0 11-4 0 2 2 0 014 0zm-7 21a2 2 0 11-4 0 2 2 0 014 0zM59 81a2 2 0 11-4 0 2 2 0 014 0zM22 63a2 2 0 11-4 0 2 2 0 014 0zm27 7a9 9 0 11-18 0 9 9 0 0118 0zm-3 0a6 6 0 10-12 0 6 6 0 0012 0zM33 41a9 9 0 11-18 0 9 9 0 0118 0zm-15 0a6 6 0 1012 0 6 6 0 00-12 0zm50 11a9 9 0 11-18 0 9 9 0 0118 0zm-3 0a6 6 0 10-12 0 6 6 0 0012 0zM44.08 4.24c.31.48.33 1.09.05 1.58a17.46 17.46 0 00-2.36 8.8c0 9.55 7.58 17.24 16.85 17.24 2.97 0 5.75-.78 8.16-2.15a1.5 1.5 0 012.1.66 12.08 12.08 0 0011 6.74 12.4 12.4 0 007.85-2.75 1.5 1.5 0 012.38.74A45.76 45.76 0 0192 48.16c0 24.77-19.67 44.9-44 44.9S4 72.93 4 48.16C4 25.23 20.84 6.28 42.64 3.58a1.5 1.5 0 011.44.66zM40.22 7C21.32 10.71 7 27.7 7 48.16c0 23.17 18.39 41.9 41 41.9s41-18.73 41-41.9c0-3.52-.42-6.93-1.22-10.2a15.5 15.5 0 01-7.9 2.15c-5.5 0-10.36-2.83-12.97-7.1a19.46 19.46 0 01-8.28 1.85c-11 0-19.86-9.1-19.86-20.24 0-2.7.52-5.26 1.45-7.62zM92 91a2 2 0 100-4 2 2 0 000 4zM7 8.5a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zM82.5 90a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm9.5-7.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM13.5 8a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM80 14.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM53.5 20a1.5 1.5 0 100-3 1.5 1.5 0 000 3z' fill='%23379fef'%3E%3C/path%3E%3C/svg%3E") no-repeat 0 0;
}

@media (max-width: 640px) {
#onetrust-banner-sdk .banner-actions-container {
display: block;
margin: 0 0 8px 0;
}
#onetrust-banner-sdk #onetrust-button-group .banner-actions-container button {
margin: 8px 0 0 0 !important;
}
#onetrust-banner-sdk #onetrust-policy {
padding-top: 0 !important;
background-image: none !important;
}
#onetrust-banner-sdk {
padding: 16px !important;
bottom: 16px !important;
}
#onetrust-banner-sdk .banner-header {
margin-bottom: 0px !important;
}
/*#onetrust-banner-sdk #onetrust-button-group {
display: grid;
grid-template-columns: repeat(2,minmax(0,1fr));
gap: 8px;
}*/
}.ot-sdk-cookie-policy{font-family:inherit;font-size:16px}.ot-sdk-cookie-policy.otRelFont{font-size:1rem}.ot-sdk-cookie-policy h3,.ot-sdk-cookie-policy h4,.ot-sdk-cookie-policy h6,.ot-sdk-cookie-policy p,.ot-sdk-cookie-policy li,.ot-sdk-cookie-policy a,.ot-sdk-cookie-policy th,.ot-sdk-cookie-policy #cookie-policy-description,.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group,.ot-sdk-cookie-policy #cookie-policy-title{color:dimgray}.ot-sdk-cookie-policy #cookie-policy-description{margin-bottom:1em}.ot-sdk-cookie-policy h4{font-size:1.2em}.ot-sdk-cookie-policy h6{font-size:1em;margin-top:2em}.ot-sdk-cookie-policy th{min-width:75px}.ot-sdk-cookie-policy a,.ot-sdk-cookie-policy a:hover{background:#fff}.ot-sdk-cookie-policy thead{background-color:#f6f6f4;font-weight:bold}.ot-sdk-cookie-policy .ot-mobile-border{display:none}.ot-sdk-cookie-policy section{margin-bottom:2em}.ot-sdk-cookie-policy table{border-collapse:inherit}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy{font-family:inherit;font-size:1rem}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy h3,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy h4,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy h6,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy p,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy li,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy th,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-description,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title{color:dimgray}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-description{margin-bottom:1em}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-subgroup{margin-left:1.5em}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-description,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group-desc,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-table-header,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy span,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy td{font-size:.9em}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy td span,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy td a{font-size:inherit}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group{font-size:1em;margin-bottom:.6em}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-title{margin-bottom:1.2em}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy>section{margin-bottom:1em}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy th{min-width:75px}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a:hover{background:#fff}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy thead{background-color:#f6f6f4;font-weight:bold}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-mobile-border{display:none}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy section{margin-bottom:2em}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-subgroup ul li{list-style:disc;margin-left:1.5em}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-subgroup ul li h4{display:inline-block}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table{border-collapse:inherit;margin:auto;border:1px solid #d7d7d7;border-radius:5px;border-spacing:initial;width:100%;overflow:hidden}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table th,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table td{border-bottom:1px solid #d7d7d7;border-right:1px solid #d7d7d7}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table tr:last-child td{border-bottom:0px}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table tr th:last-child,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table tr td:last-child{border-right:0px}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table .ot-host,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table .ot-cookies-type{width:25%}.ot-sdk-cookie-policy[dir=rtl]{text-align:left}#ot-sdk-cookie-policy h3{font-size:1.5em}@media only screen and (max-width: 530px){.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) table,.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) thead,.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) tbody,.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) th,.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) td,.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) tr{display:block}.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) thead tr{position:absolute;top:-9999px;left:-9999px}.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) tr{margin:0 0 1em 0}.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) tr:nth-child(odd),.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) tr:nth-child(odd) a{background:#f6f6f4}.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) td{border:none;border-bottom:1px solid #eee;position:relative;padding-left:50%}.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) td:before{position:absolute;height:100%;left:6px;width:40%;padding-right:10px}.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) .ot-mobile-border{display:inline-block;background-color:#e4e4e4;position:absolute;height:100%;top:0;left:45%;width:2px}.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) td:before{content:attr(data-label);font-weight:bold}.ot-sdk-cookie-policy:not(#ot-sdk-cookie-policy-v2) li{word-break:break-word;word-wrap:break-word}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table{overflow:hidden}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table td{border:none;border-bottom:1px solid #d7d7d7}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy thead,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy tbody,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy th,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy td,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy tr{display:block}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table .ot-host,#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table .ot-cookies-type{width:auto}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy tr{margin:0 0 1em 0}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy td:before{height:100%;width:40%;padding-right:10px}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy td:before{content:attr(data-label);font-weight:bold}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy li{word-break:break-word;word-wrap:break-word}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy thead tr{position:absolute;top:-9999px;left:-9999px;z-index:-9999}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table tr:last-child td{border-bottom:1px solid #d7d7d7;border-right:0px}#ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table tr:last-child td:last-child{border-bottom:0px}}
            
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy h5,
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy h6,
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy li,
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy p,
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy span,
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy td,
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-description {
                    color: #696969;
                }
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy th {
                    color: #696969;
                }
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group {
                    color: #696969;
                }
                
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title {
                        color: #696969;
                    }
                
        
                #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy table th {
                        background-color: #F8F8F8;
                    }
                
        .ot-floating-button__front{background-image:url('https://cdn.cookielaw.org/logos/static/ot_persistent_cookie_icon.png')}</style></head>
<body class="question-page unified-theme">

    
<div id="signup-modal-container"><aside class="s-modal" role="dialog" aria-hidden="true" aria-labelledby="signup-modal-title" aria-describedby="signup-modal-description"><div class="s-modal--dialog wmx4 p32" role="document"><h1 id="signup-modal-title" class="s-modal--header"><div slot="header" class="s-modal--header d-flex g12 mt16"><svg aria-hidden="true" class="native svg-icon iconLogoGlyph" width="25" height="30" viewBox="0 0 25 30"><path d="M21 27v-8h3v11H0V19h3v8h18Z" fill="#BCBBBB"></path><path d="M17.1.2 15 1.8l7.9 10.6 2.1-1.6L17.1.2Zm3.7 14.7L10.6 6.4l1.7-2 10.2 8.5-1.7 2ZM7.2 12.3l12 5.6 1.1-2.4-12-5.6-1.1 2.4Zm-1.8 6.8 13.56 1.96.17-2.38-13.26-2.55-.47 2.97ZM19 25H5v-3h14v3Z" fill="#F48024"></path></svg> <span class="fs-headline1 mb0 fc-black-700"><strong>Join Stack Overflow</strong></span></div></h1> <div id="signup-modal-description" class="s-modal--body"><div slot="body"><p class="fs-caption fc-black-400 ta-left mb24">By clicking “Sign up”, you agree to our <a href="/legal/terms-of-service/public" target="_blank" rel="noopener noreferrer" class="s-link svelte-9quauz">terms of service</a>  and acknowledge you have read our <a href="/legal/privacy-policy" target="_blank" rel="noopener noreferrer" class="s-link svelte-9quauz">privacy policy</a>.</p> <div class="pb32"><form class="flex--item" action="/users/signup?ssrc=undefined&amp;returnurl=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F1077347%2Fhello-world-in-python%3Fr%3DSearchResults%26s%3D1%257C162.1862" method="POST" target="_self"><input type="hidden" name="fkey" value="2df6514198795106c1c1c5c9051f7852696a672b45a679539f094869aa86fc3e"> <input type="hidden" name="legalLinksShown" value="1"> <input type="hidden" name="ssrc" value="undefined">  <input type="hidden" name="oauth_version" value="2.0"> <input type="hidden" name="oauth_server"> <div class="d-flex fd-column gy12"><button class="s-btn w100 s-btn__google" type="submit" data-testid="signup-google" data-provider="Google"><div class="d-flex ai-center jc-center gx8"><svg aria-hidden="true" class="native svg-icon iconGoogle" width="18" height="18" viewBox="0 0 18 18"><path fill="#4285F4" d="M16.51 8H8.98v3h4.3c-.18 1-.74 1.48-1.6 2.04v2.01h2.6a7.8 7.8 0 0 0 2.38-5.88c0-.57-.05-.66-.15-1.18"></path><path fill="#34A853" d="M8.98 17c2.16 0 3.97-.72 5.3-1.94l-2.6-2a4.8 4.8 0 0 1-7.18-2.54H1.83v2.07A8 8 0 0 0 8.98 17"></path><path fill="#FBBC05" d="M4.5 10.52a4.8 4.8 0 0 1 0-3.04V5.41H1.83a8 8 0 0 0 0 7.18z"></path><path fill="#EA4335" d="M8.98 4.18c1.17 0 2.23.4 3.06 1.2l2.3-2.3A8 8 0 0 0 1.83 5.4L4.5 7.49a4.8 4.8 0 0 1 4.48-3.3"></path></svg> Sign up with Google</div> </button><button class="s-btn w100 s-btn__google" type="submit" data-testid="signup-github" data-provider="GitHub"><div class="d-flex ai-center jc-center gx8"><svg aria-hidden="true" class="native svg-icon iconGitHub" width="18" height="18" viewBox="0 0 18 18"><path fill="#010101" d="M9 1a8 8 0 0 0-2.53 15.59c.4.07.55-.17.55-.38l-.01-1.49c-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82a7.4 7.4 0 0 1 4 0c1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48l-.01 2.2c0 .21.15.46.55.38A8.01 8.01 0 0 0 9 1"></path></svg> Sign up with GitHub</div> </button></div></form></div> <h1 class="svelte-1mm1u63">OR</h1> <form id="signup-modal-signup-form" class="mt32 d-flex fd-column gy16" action="/users/signup?ssrc=undefined&amp;returnurl=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F1077347%2Fhello-world-in-python%3Fr%3DSearchResults%26s%3D1%257C162.1862" method="POST"><input type="hidden" name="fkey" value="2df6514198795106c1c1c5c9051f7852696a672b45a679539f094869aa86fc3e"> <input type="hidden" name="legalLinksShown" value="1"> <input type="hidden" name="ssrc" value="undefined">  <div class="flex--item d-flex fd-column gs4 gsy  svelte-1rlgrxv"><label class="flex--item s-label" for="signup-modal-email">Email</label> <div class="d-flex ps-relative"><input class="s-input" id="signup-modal-email" size="30" maxlength="100" name="email" autocomplete="off"></div> </div> <div class="flex--item d-flex fd-column gs4 gsy  svelte-1rlgrxv"><label class="flex--item s-label" for="signup-modal-password">Password</label> <div class="d-flex ps-relative"><input id="signup-modal-password" class="flex--item s-input" type="password" autocomplete="new-password" name="password" placeholder="8+ characters (at least 1 letter &amp; 1 number)"> <button type="button" class="show-hide-password svelte-1rlgrxv"><svg aria-hidden="true" class="svg-icon iconEyeOff" width="18" height="18" viewBox="0 0 18 18"><path d="m5.02 9.44-2.22 2.2C1.63 10.25 1 9 1 9s3-6 8.06-6q1.13.01 2.12.38L9.5 5.03 9 5a4 4 0 0 0-3.98 4.44m2.03 3.05A4 4 0 0 0 13 9q-.01-1.1-.54-2l-1.51 1.54q.05.22.05.46a2 2 0 0 1-2.44 1.95zm7.11-7.22A15 15 0 0 1 17 9s-3 6-7.94 6c-1.31 0-2.48-.4-3.5-1l-1.97 2L2 14.41 14.59 2 16 3.41z"></path></svg></button></div> </div> <div class="flex--item d-flex gs4 gsy fd-column svelte-1rlgrxv"><button class="flex--item s-btn s-btn__filled mt12  svelte-1rlgrxv" id="signup-modal-submit-button" name="submit-button" type="submit">Sign up</button> <p class="flex--item s-input-message d-none svelte-1rlgrxv" aria-hidden="true" aria-live="assertive"></p></div></form></div></div> <div class="d-flex g8 s-modal--footer"><div slot="footer" class="fs-body1">Already have an account?  <a href="/users/login" class="s-link">Log in</a></div></div> <button class="s-btn s-modal--close s-btn__muted s-btn__icon" aria-label="Close"><svg aria-hidden="true" class="modal-close svg-icon iconClear" width="18" height="18" viewBox="0 0 18 18"><path d="M15 4.41 13.59 3 9 7.59 4.41 3 3 4.41 7.59 9 3 13.59 4.41 15 9 10.41 13.59 15 15 13.59 10.41 9z"></path></svg></button></div></aside></div>
<script type="application/json" data-role="module-args" data-module-name="islands/signup-modal/index.mod">{"ContainerElementId":"signup-modal-container","FKey":"2df6514198795106c1c1c5c9051f7852696a672b45a679539f094869aa86fc3e","TriggerEvent":"signupModelShow","OauthInPopup":false,"ReturnUrl":"https://stackoverflow.com/questions/1077347/hello-world-in-python?r=SearchResults\u0026s=1%7C162.1862"}</script>
<script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/71.en.js?v=7959a298059a"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/8427.en.js?v=46a04e4e6f05"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/6828.en.js?v=4c50b1e12ff1"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/4607.en.js?v=731109be5b3d"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/8825.en.js?v=9f045b19d466"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/4869.en.js?v=30a0f12e1246"></script><script defer="" src="https://cdn.sstatic.net/Js/islands/signup-modal.en.js?v=8ee8bdee04ba"></script>

<script defer="">
dispatchEvent(new CustomEvent("openSignupModal"));
</script>
    <div id="g_id_onload" data-client_id="717762328687-iludtf96g1hinl76e4lc1b9a82g457nn.apps.googleusercontent.com" data-native_callback="handleOneTapNotShown" data-moment_callback="handleOneTapMoment" data-cancel_on_tap_outside="false" data-login_uri="https://stackoverflow.com/users/auth/gcp?ssrc=google-one-tap&amp;returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f1077347%2fhello-world-in-python%3fr%3dSearchResults%26s%3d1%257C162.1862">
    </div>
    <script>
        function handleOneTapNotShown() {
            // show hero if one tap is not shown
            $('#top-hero-div').removeClass('d-none');
        }
        function handleOneTapMoment(moment) {
            // dismiss the signup dialog if google one tap was skipped
            if (moment.isSkippedMoment()) {
                document.cookie = "notice-signup=0:0:0:1; path=/";
            }
        }
    </script>
<div id="notify-container"></div>
<div id="custom-header"></div>
    

<header class="s-topbar ps-fixed t0 l0 js-top-bar">
<a href="#content" class="s-topbar--skip-link">Skip to main content</a>
<div class="s-topbar--container">
        <a href="#" class="s-topbar--menu-btn js-left-sidebar-toggle" role="menuitem" aria-haspopup="true" aria-controls="left-sidebar" aria-expanded="false"><span></span></a>
        <div class="topbar-dialog leftnav-dialog js-leftnav-dialog dno">
            <div class="left-sidebar js-unpinned-left-sidebar" data-can-be="left-sidebar" data-is-here-when="sm"></div>
        </div>
            <a href="https://stackoverflow.com" class="s-topbar--logo js-gps-track" data-gps-track="top_nav.click({is_current:false, location:2, destination:8})">
                <span class="-img _glyph">Stack Overflow</span>
            </a>



        <ol class="s-navigation" role="presentation">

                <li class="md:d-none">
                    <a href="https://stackoverflow.co/" class="s-navigation--item js-gps-track" data-gps-track="top_nav.products.click({location:2, destination:7})" data-ga="[&quot;top navigation&quot;,&quot;about menu click&quot;,null,null,null]">About</a>
                </li>

            <li>
                <a href="#" class="s-navigation--item js-gps-track js-products-menu" aria-controls="products-popover" data-controller="s-popover" data-action="s-popover#toggle" data-s-popover-placement="bottom" data-s-popover-toggle-class="is-selected" data-gps-track="top_nav.products.click({location:2, destination:1})" data-ga="[&quot;top navigation&quot;,&quot;products menu click&quot;,null,null,null]" aria-expanded="false">
                    Products
                </a>
            </li>

                <li class="md:d-none">
                    <a href="https://stackoverflow.co/teams/" class="s-navigation--item js-gps-track" data-gps-track="top_nav.products.click({location:2, destination:7})" data-ga="[&quot;top navigation&quot;,&quot;learn more - teams&quot;,null,null,null]">For Teams</a>
                </li>
        </ol>
        <div class="s-popover ws2 mtn2 p0" id="products-popover" role="menu" aria-hidden="true">
            <div class="s-popover--arrow"></div>
            <ol class="list-reset s-anchors s-anchors__inherit">
                <li class="m6">
                    <a href="/questions" class="bar-sm p6 d-block h:bg-black-225 js-gps-track" data-gps-track="top_nav.products.click({location:2, destination:2})" data-ga="[&quot;top navigation&quot;,&quot;public qa submenu click&quot;,null,null,null]">
                        <span class="fs-body1 d-block">Stack Overflow</span>
                        <span class="fs-caption d-block fc-black-400">Public questions &amp; answers</span>
                    </a>
                </li>
                <li class="m6">
                    <a href="https://stackoverflow.co/teams/" class="bar-sm p6 d-block h:bg-black-225 js-gps-track" data-gps-track="top_nav.products.click({location:2, destination:3})" data-ga="[&quot;top navigation&quot;,&quot;teams submenu click&quot;,null,null,null]">
                        <span class="fs-body1 d-block">Stack Overflow for Teams</span>
                        <span class="fs-caption d-block fc-black-400">Where developers &amp; technologists share private knowledge with coworkers</span>
                    </a>
                </li>
                <li class="m6">
                    <a href="https://stackoverflow.co/talent/" class="bar-sm p6 d-block h:bg-black-225 js-gps-track" data-gps-track="top_nav.products.click({location:2, destination:5})" data-ga="[&quot;top navigation&quot;,&quot;talent submenu click&quot;,null,null,null]">
                        <span class="fs-body1 d-block">Talent</span>
                        <span class="fs-caption d-block fc-black-400">
                            Build your employer brand
                        </span>
                    </a>
                </li>
                <li class="m6">
                    <a href="https://stackoverflow.co/advertising/" class="bar-sm p6 d-block h:bg-black-225 js-gps-track" data-gps-track="top_nav.products.click({location:2, destination:6})" data-ga="[&quot;top navigation&quot;,&quot;advertising submenu click&quot;,null,null,null]">
                        <span class="fs-body1 d-block">Advertising</span>
                        <span class="fs-caption d-block fc-black-400">Reach developers &amp; technologists worldwide</span>
                    </a>
                </li>
                <li class="bt bc-black-200 py6 px6 bbr-md">
                    <a href="https://stackoverflow.co/labs/" class="bar-sm p6 d-block h:bg-black-225 js-gps-track" data-gps-track="top_nav.products.click({location:2, destination:7})" data-ga="[&quot;top navigation&quot;,&quot;labs submenu click&quot;,null,null,null]">
                         <span class="fs-body1 d-block">Labs</span>
                        <span class="fs-caption d-block fc-black-400">The future of collective knowledge sharing</span>
                     </a>
                </li>
                <li class="bg-black-100 bt bc-black-200 py6 px6 bbr-md">
                    <a href="https://stackoverflow.co/" class="fc-black-400 d-block py6 px6 h:fc-black-600 js-gps-track" data-gps-track="top_nav.products.click({location:2, destination:7})" data-ga="[&quot;top navigation&quot;,&quot;about submenu click&quot;,null,null,null]">About the company</a>
                </li>
            </ol>
        </div>


            <form id="search" role="search" action="/search" class="s-topbar--searchbar js-searchbar " autocomplete="off">
                    <div class="s-topbar--searchbar--input-group">
                        <input name="q" type="text" role="combobox" placeholder="Search…" value="" autocomplete="off" maxlength="240" class="s-input s-input__search js-search-field " aria-label="Search" aria-controls="top-search" data-controller="s-popover" data-action="focus->s-popover#show" data-s-popover-placement="bottom-start" aria-expanded="false">
                        <svg aria-hidden="true" class="s-input-icon s-input-icon__search svg-icon iconSearch" width="18" height="18" viewBox="0 0 18 18"><path d="m18 16.5-5.14-5.18h-.35a7 7 0 1 0-1.19 1.19v.35L16.5 18l1.5-1.5ZM12 7A5 5 0 1 1 2 7a5 5 0 0 1 10 0Z"></path></svg>
                        <div class="s-popover p0 wmx100 wmn4 sm:wmn-initial js-top-search-popover" id="top-search" role="menu" style="">
<div class="s-popover--arrow" style=""></div>
<div class="js-spinner p24 d-flex ai-center jc-center d-none">
    <div class="s-spinner s-spinner__sm fc-orange-400">
        <div class="v-visible-sr">Loading…</div>
    </div>
</div>

<span class="v-visible-sr js-screen-reader-info"></span>
<div class="js-ac-results overflow-y-auto hmx3 d-none"></div>

<div class="js-search-hints" aria-describedby="Tips for searching">
<div class="fc-black-500 d-flex flex__allitems6 sm:fd-column p12 js-search-hints-text">
<div class="flex--item">
    <div class="mb12">
        <span class="ff-mono fc-black-600">[tag]</span>
        <span class="fc-black-400">search within a tag</span>
    </div>
    <div class="mb12">
        <span class="ff-mono fc-black-600">user:1234</span>
        <span class="fc-black-400">search by author</span>
    </div>
    <div class="mb12">
        <span class="ff-mono fc-black-600">"words here"</span>
        <span class="fc-black-400">exact phrase</span>
    </div>
        <div class="sm:mb12">
            <span class="ff-mono fc-black-600">collective:"Name"</span>
            <span class="fc-black-400">collective content</span>
        </div>
</div>
<div class="flex--item">
    <div class="mb12">
        <span class="ff-mono fc-black-600">answers:0</span>
        <span class="fc-black-400">unanswered questions</span>
    </div>
    <div class="mb12">
        <span class="ff-mono fc-black-600">score:3</span>
        <span class="fc-black-400">posts with a 3+ score</span>
    </div>
        <div class="mb12">
            <span class="ff-mono fc-black-600">is:question</span>
            <span class="fc-black-400">type of post</span>
        </div>
    <div class="">
        <span class="ff-mono fc-black-600">isaccepted:yes</span>
        <span class="fc-black-400">search within status</span>
    </div>
</div>
</div>
<div class="p12 bt bc-black-200 mtn1">
<div class="d-flex gs8 jc-space-between ai-center fw-wrap">
    <div class="flex--item">
            <a class="s-btn s-btn__filled s-btn__xs" href="/questions/ask">
                Ask a question
            </a>
    </div>
    <div class="flex--item fs-fine">
        <a href="https://stackoverflow.com/help/searching">Search help</a>
    </div>
</div>
</div></div>
</div>
                    </div>
            </form>
    

<nav class="h100 ml-auto overflow-x-auto pr12">
<ol class="s-topbar--content" role="menubar">



    <li class="js-topbar-dialog-corral" role="presentation">
            

<div class="topbar-dialog siteSwitcher-dialog dno" role="menu">
    <div class="header fw-wrap">
        <h3 class="flex--item">
            <a href="https://stackoverflow.com">current community</a>
        </h3>
        <div class="flex--item fl1">
            <div class="ai-center d-flex jc-end">
                <button class="js-close-button s-btn s-btn__muted p0 ml8 d-none sm:d-block" type="button" aria-label="Close">
                    <svg aria-hidden="true" class="svg-icon iconClear" width="18" height="18" viewBox="0 0 18 18"><path d="M15 4.41 13.59 3 9 7.59 4.41 3 3 4.41 7.59 9 3 13.59 4.41 15 9 10.41 13.59 15 15 13.59 10.41 9 15 4.41Z"></path></svg>
                </button>
            </div>
        </div>
    </div>
    <div class="modal-content bg-blue-200 current-site-container">
        <ul class="current-site">
                <li class="d-flex">
                        <div class="fl1">
            <a href="https://stackoverflow.com" class="current-site-link d-flex gx8 site-link js-gps-track" data-id="1" data-gps-track="site_switcher.click({ item_type:3 })">
    <div class="favicon favicon-stackoverflow site-icon flex--item" title="Stack Overflow"></div>
    <span class="flex--item fl1">
        Stack Overflow
    </span>
</a>

</div>
<div class="related-links">
        <a href="https://stackoverflow.com/help" class="js-gps-track" data-gps-track="site_switcher.click({ item_type:14 })">help</a>
        <a href="https://chat.stackoverflow.com/?tab=site&amp;host=stackoverflow.com" class="js-gps-track" data-gps-track="site_switcher.click({ item_type:6 })">chat</a>
</div>

                </li>
                <li class="related-site d-flex">
                        <div class="L-shaped-icon-container">
    <span class="L-shaped-icon"></span>
</div>

                        <a href="https://meta.stackoverflow.com" class="s-block-link px16 d-flex gx8 site-link js-gps-track" data-id="552" data-gps-track="site.switch({ target_site:552, item_type:3 }),site_switcher.click({ item_type:4 })">
    <div class="favicon favicon-stackoverflowmeta site-icon flex--item" title="Meta Stack Overflow"></div>
    <span class="flex--item fl1">
        Meta Stack Overflow
    </span>
</a>

                </li>
        </ul>
    </div>

    <div class="header" id="your-communities-header">
        <h3>
your communities            </h3>

    </div>
    <div class="modal-content" id="your-communities-section">

            <div class="call-to-login">
<a href="https://stackoverflow.com/users/signup?ssrc=site_switcher&amp;returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f1077347%2fhello-world-in-python%3fr%3dSearchResults" class="login-link js-gps-track" data-gps-track="site_switcher.click({ item_type:10 })">Sign up</a> or <a href="https://stackoverflow.com/users/login?ssrc=site_switcher&amp;returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f1077347%2fhello-world-in-python%3fr%3dSearchResults" class="login-link js-gps-track" data-gps-track="site_switcher.click({ item_type:11 })">log in</a> to customize your list.                </div>
    </div>

    <div class="header">
        <h3><a href="https://stackexchange.com/sites">more stack exchange communities</a>
        </h3>
        <a href="https://stackoverflow.blog" class="float-right">company blog</a>
    </div>
    <div class="modal-content">
            <div class="child-content"></div>
    </div>        
</div>

    </li>

        <li role="none"><button class="s-topbar--item s-btn s-btn__icon s-btn__muted d-none sm:d-inline-flex js-searchbar-trigger" role="menuitem" aria-label="Search" aria-haspopup="true" aria-controls="search" title="Click to show search"><svg aria-hidden="true" class="svg-icon iconSearch" width="18" height="18" viewBox="0 0 18 18"><path d="m18 16.5-5.14-5.18h-.35a7 7 0 1 0-1.19 1.19v.35L16.5 18l1.5-1.5ZM12 7A5 5 0 1 1 2 7a5 5 0 0 1 10 0Z"></path></svg></button></li>
                    <li role="none">
                        <a href="https://stackoverflow.com/users/login?ssrc=head&amp;returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f1077347%2fhello-world-in-python%3fr%3dSearchResults" class="s-topbar--item s-topbar--item__unset s-btn s-btn__outlined ws-nowrap js-gps-track" role="menuitem" rel="nofollow" data-gps-track="login.click" data-ga="[&quot;top navigation&quot;,&quot;login button click&quot;,null,null,null]">Log in</a>
                    </li>
                        <li role="none"><a href="https://stackoverflow.com/users/signup?ssrc=head&amp;returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f1077347%2fhello-world-in-python%3fr%3dSearchResults" class="s-topbar--item s-topbar--item__unset ml4 s-btn s-btn__filled ws-nowrap js-signup-button js-gps-track" role="menuitem" rel="nofollow" data-gps-track="signup.topbar.click" data-ga="[&quot;sign up&quot;,&quot;Sign Up Navigation&quot;,&quot;Header&quot;,null,null]">Sign up</a></li>
</ol>
</nav>


</div>
</header>

<script>
    StackExchange.ready(function () { StackExchange.topbar.init(); });
    StackExchange.scrollPadding.setPaddingTop(50, 10); 
</script>



        <div id="top-hero-div" class="d-none">
                <div id="signup-dialog-container"></div>
<script type="application/json" data-role="module-args" data-module-name="islands/signup-dialog/index.mod">{"ContainerElementId":"signup-dialog-container","FKey":"2df6514198795106c1c1c5c9051f7852696a672b45a679539f094869aa86fc3e","VisitTimeout":30,"ReshowFrequency":3,"ReshowOffset":0,"InactiveTimeBeforeReshow":1.0,"OauthInPopup":false,"ReturnUrlForPopup":"https://stackoverflow.com/users/after-signup/oauth-only","Location":1,"IsSampleForHeroShowEvent":false}</script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/71.en.js?v=7959a298059a"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/8427.en.js?v=46a04e4e6f05"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/5252.en.js?v=3e04489c620f"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/2931.en.js?v=83097cffefaa"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/4869.en.js?v=30a0f12e1246"></script><script defer="" src="https://cdn.sstatic.net/Js/islands/signup-dialog.en.js?v=ab427867a70f"></script>            </div>


<div class="container">
            


<div id="left-sidebar" data-is-here-when="md lg" class="left-sidebar js-pinned-left-sidebar ps-relative">
<div class="left-sidebar--sticky-container js-sticky-leftnav">
    <nav role="navigation">
        <ol class="nav-links">
            <li>
                <ol class="nav-links">
                    

<li class="ps-relative" aria-current="false">


<a href="/" class="s-block-link pl8 js-gps-track nav-links--link -link__with-icon" data-gps-track="top_nav.click({is_current: false, location:2, destination:8,  has_activity_notification:False})" aria-controls="" data-controller="" data-s-popover-placement="right" aria-current="false" data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never">
    <div class="d-flex ai-center">
<svg aria-hidden="true" class="svg-icon iconHome" width="18" height="18" viewBox="0 0 18 18"><path d="M15 10v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5H0l9-9 9 9h-3Zm-8 1v6h4v-6H7Z"></path></svg>                <span class="-link--channel-name pl6">Home</span>

    </div>
</a>
</li>



                    

<li class="ps-relative  youarehere" aria-current="true">


<a id="nav-questions" href="/questions" class="s-block-link pl8 js-gps-track nav-links--link -link__with-icon" data-gps-track="top_nav.click({is_current: true, location:2, destination:1,  has_activity_notification:False})" aria-controls="" data-controller="" data-s-popover-placement="right" aria-current="false" data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never">
    <div class="d-flex ai-center">
<svg aria-hidden="true" class="svg-icon iconQuestion" width="18" height="18" viewBox="0 0 18 18"><path d="m4 15-3 3V4c0-1.1.9-2 2-2h12c1.09 0 2 .91 2 2v9c0 1.09-.91 2-2 2H4Zm7.75-3.97c.72-.83.98-1.86.98-2.94 0-1.65-.7-3.22-2.3-3.83a4.41 4.41 0 0 0-3.02 0 3.8 3.8 0 0 0-2.32 3.83c0 1.29.35 2.29 1.03 3a3.8 3.8 0 0 0 2.85 1.07c.62 0 1.2-.11 1.71-.34.65.44 1 .68 1.06.7.23.13.46.23.7.3l.59-1.13a5.2 5.2 0 0 1-1.28-.66Zm-1.27-.9a5.4 5.4 0 0 0-1.5-.8l-.45.9c.33.12.66.29.98.5-.2.07-.42.11-.65.11-.61 0-1.12-.23-1.52-.68-.86-1-.86-3.12 0-4.11.8-.9 2.35-.9 3.15 0 .9 1.01.86 3.03-.01 4.08Z"></path></svg>                <span class="-link--channel-name pl6">Questions</span>

    </div>
</a>
</li>






                    

<li class="ps-relative" aria-current="false">


<a href="/tags" class="s-block-link pl8 js-gps-track nav-links--link -link__with-icon" data-gps-track="top_nav.click({is_current: false, location:2, destination:2,  has_activity_notification:False})" aria-controls="" data-controller="" data-s-popover-placement="right" aria-current="false" data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never">
    <div class="d-flex ai-center">
<svg aria-hidden="true" class="svg-icon iconTags" width="18" height="18" viewBox="0 0 18 18"><path d="M9.24 1a3 3 0 0 0-2.12.88l-5.7 5.7a2 2 0 0 0-.38 2.31 3 3 0 0 1 .67-1.01l6-6A3 3 0 0 1 9.83 2H14a3 3 0 0 1 .79.1A2 2 0 0 0 13 1H9.24Z" opacity=".4"></path><path d="M9.83 3a2 2 0 0 0-1.42.59l-6 6a2 2 0 0 0 0 2.82L6.6 16.6a2 2 0 0 0 2.82 0l6-6A2 2 0 0 0 16 9.17V5a2 2 0 0 0-2-2H9.83ZM12 9a2 2 0 1 1 0-4 2 2 0 0 1 0 4Z"></path></svg>                <span class="-link--channel-name pl6">Tags</span>

    </div>
</a>
</li>


                    
                    <li class="pb24"></li>


                    

<li class="ps-relative" aria-current="false">


<a id="nav-users" href="/users" class="s-block-link pl8 js-gps-track nav-links--link -link__with-icon" data-gps-track="top_nav.click({is_current: false, location:2, destination:3,  has_activity_notification:False})" aria-controls="" data-controller="" data-s-popover-placement="right" aria-current="false" data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never">
    <div class="d-flex ai-center">
<svg aria-hidden="true" class="svg-icon iconPeople" width="18" height="18" viewBox="0 0 18 18"><path d="M17 14c0 .44-.45 1-1 1H9a1 1 0 0 1-1-1H2c-.54 0-1-.56-1-1 0-2.63 3-4 3-4s.23-.4 0-1c-.84-.62-1.06-.59-1-3 .06-2.42 1.37-3 2.5-3s2.44.58 2.5 3c.06 2.41-.16 2.38-1 3-.23.59 0 1 0 1s1.55.71 2.42 2.09c.78-.72 1.58-1.1 1.58-1.1s.23-.4 0-1c-.84-.61-1.06-.58-1-3 .06-2.41 1.37-3 2.5-3s2.44.59 2.5 3c.05 2.42-.16 2.39-1 3-.23.6 0 1 0 1s3 1.38 3 4Z"></path></svg>                <span class="-link--channel-name pl6">Users</span>

    </div>
</a>
</li>



                        

<li class="ps-relative" aria-current="false">


<a id="nav-companies" href="https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&amp;so_source=SiteNav" class="s-block-link pl8 js-gps-track nav-links--link -link__with-icon" data-gps-track="top_nav.click({is_current: false, location:2, destination:12,  has_activity_notification:False})" aria-controls="" data-controller="" data-s-popover-placement="right" aria-current="false" data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never">
    <div class="d-flex ai-center">
<svg aria-hidden="true" class="svg-icon iconIndustry" width="18" height="18" viewBox="0 0 18 18"><path d="M10 16v-4H8v4H2V4c0-1.1.9-2 2-2h6c1.09 0 2 .91 2 2v2h2c1.09 0 2 .91 2 2v8h-6ZM4 4v2h2V4H4Zm0 4v2h2V8H4Zm4-4v2h2V4H8Zm0 4v2h2V8H8Zm-4 4v2h2v-2H4Zm8 0v2h2v-2h-2Zm0-4v2h2V8h-2Z"></path></svg>                <span class="-link--channel-name pl6">Companies</span>

    </div>
</a>
</li>




    <li class="ml8 mt32 mb8">
        <a href="javascript:void(0)" class="s-link s-link d-flex fl-grow1 fc-black-400 h:fc-black-600 fs-fine" role="button" aria-controls="popover-labs-left-nav" data-controller="s-popover" data-action="s-popover#toggle" data-s-popover-placement="top" data-s-popover-toggle-class="is-selected" aria-expanded="false">
            <div class="flex--item fl-grow1 tt-uppercase fc-black-600 fw-bold">Labs</div>
            <div class="flex--item px12">
                <svg aria-hidden="true" class="svg-icon iconInfoSm" width="14" height="14" viewBox="0 0 14 14"><path d="M7 1a6 6 0 1 1 0 12A6 6 0 0 1 7 1Zm1 10V6H6v5h2Zm0-6V3H6v2h2Z"></path></svg>
            </div>
        </a>
    </li>
            

<li class="ps-relative" aria-current="false">


<a id="nav-labs-discussions" href="/beta/discussions" class="s-block-link pl8 ai-center js-gps-track nav-links--link -link__with-icon" data-gps-track="top_nav.click({is_current: false, location:2, destination:24,  has_activity_notification:False})" aria-controls="" data-controller="" data-s-popover-placement="right" aria-current="false" data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never">
    <div class="d-flex ai-center">
<svg aria-hidden="true" class="w16 svg-icon iconMessage" width="18" height="18" viewBox="0 0 18 18"><path d="M5 7a1 1 0 0 1 1-1h6a1 1 0 1 1 0 2H6a1 1 0 0 1-1-1Zm1 2a1 1 0 1 0 0 2h4a1 1 0 1 0 0-2H6Zm-5 9V4c0-1.1.9-2 2-2h12c1.09 0 2 .91 2 2v9c0 1.09-.91 2-2 2H4.5L1 18Zm2.76-5h11.23a.06.06 0 0 0 0-.01H15V4a.06.06 0 0 0-.01-.01H3v9.65l.76-.65Z"></path></svg>                <span class="-link--channel-name pl6">Discussions</span>

    </div>
</a>
</li>



                        <li class="ml8 mt32 mb4">
                            <div class="d-flex jc-space-between ai-center">
                                <a class="s-link d-flex fl-grow1 fc-black-400 h:fc-black-600 fs-fine" href="javascript:void(0)" role="button" aria-controls="popover-discover-collectives" data-controller="s-popover" data-action="s-popover#toggle" data-s-popover-placement="top" data-s-popover-toggle-class="is-selected" data-gps-track="top_nav.click({is_current:false, location:2, destination:17})" aria-expanded="false">
                                    <div class="flex--item fl-grow1 tt-uppercase fc-black-600 fw-bold">Collectives</div>
                                    <div class="flex--item px12 js-collectives-navcta-toggle">
                                        <svg aria-hidden="true" class="svg-icon iconPlusSm" width="14" height="14" viewBox="0 0 14 14"><path d="M8 2H6v4H2v2h4v4h2V8h4V6H8V2Z"></path></svg>
                                    </div>
                                </a>
                            </div>

                        </li>
                            <li class="ps-relative js-collectives-navcta-toggle">
                                <p class="fs-fine pr8 pl8 pt4 fc-black-400">
                                    Communities for your favorite technologies.  <a href="/collectives-all" class="s-link s-link__grayscale s-link__underlined fw-bold">Explore all Collectives</a>
                                </p>
                            </li>

                </ol>
            </li>
            
            

    

<li class="js-freemium-cta ps-relative mt32 mb8">


<div class="fs-fine tt-uppercase fc-black-600 fw-bold ml8 mt16 mb8">Teams</div>

<div class="px12 pt12 pb4 mb12 fc-medium overflow-hidden">        
    <img class="wmx100 mx-auto mb12 h-auto d-block" width="151" height="24" src="https://cdn.sstatic.net/Img/teams/teams-promo.svg?v=e507948b81bf" alt="">
    <p class="fs-fine">
        Ask questions, find answers and collaborate at work with Stack Overflow for Teams.
    </p>
    <a href="https://stackoverflow.co/teams/?utm_medium=referral&amp;utm_source=stackoverflow-community&amp;utm_campaign=side-bar&amp;utm_content=explore-teams" class="w100 s-btn s-btn__filled s-btn__xs bg-orange-400 h:bg-orange-500 js-gps-track pt8 pr7 pb6 pl7" data-gps-track="teams.create.left-sidenav.click({ Action: 5 })" data-ga="[&quot;teams left navigation - anonymous&quot;,&quot;left nav free cta&quot;,&quot;stackoverflow.com/teams&quot;,null,null]">Explore Teams</a>
    <a href="https://stackoverflowteams.com/teams/create/free/?utm_medium=referral&amp;utm_source=stackoverflow-community&amp;utm_campaign=side-bar&amp;utm_content=explore-teams" class="w100 s-btn s-btn__muted s-btn__xs mt1 js-gps-track" data-gps-track="teams.create.left-sidenav.click({ Action: 6 })" data-ga="[&quot;teams left navigation - anonymous&quot;,&quot;left nav free cta&quot;,&quot;stackoverflow.com/teams/create/free&quot;,null,null]">Create a free Team</a>
</div>
</li>


<li class="d-flex ai-center jc-space-between ml8 mt32 mb8 js-create-team-cta d-none">

    <a href="javascript:void(0)" class="s-link d-flex fl-grow1 fc-black-400 h:fc-black-600 fs-fine js-gps-track" role="button" aria-controls="popover-teams-create-cta" data-controller="s-popover" data-action="s-popover#toggle" data-s-popover-placement="bottom-start" data-s-popover-toggle-class="is-selected" data-gps-track="teams.create.left-sidenav.click({ Action: ShowInfo })" data-ga="[&quot;teams left navigation - anonymous&quot;,&quot;left nav show teams info&quot;,null,null,null]" aria-expanded="false">
        <div class="flex--item fl-grow1 fc-black-600 fw-bold tt-uppercase">Teams</div>
        <div class="flex--item px12">
            <svg aria-hidden="true" class="svg-icon iconPlusSm" width="14" height="14" viewBox="0 0 14 14"><path d="M8 2H6v4H2v2h4v4h2V8h4V6H8V2Z"></path></svg>
        </div>
    </a>
</li>
<li class="ps-relative js-create-team-cta d-none">
    <p class="fs-fine pr8 pl8 pb4 fc-black-400">
        Ask questions, find answers and collaborate at work with Stack Overflow for Teams.
        <a href="https://stackoverflow.co/teams/?utm_medium=referral&amp;utm_source=stackoverflow-community&amp;utm_campaign=side-bar&amp;utm_content=explore-teams-compact" class="s-link s-link__grayscale s-link__underlined fw-bold">Explore Teams</a>
    </p>
</li> 

        </ol>
    </nav>
</div>


    <div class="s-popover ws2" id="popover-discover-collectives" role="menu">
        <div class="s-popover--arrow"></div>
        <div>
            <svg aria-hidden="true" class="fc-orange-400 float-right ml24 svg-spot spotCollective" width="48" height="48" viewBox="0 0 48 48"><path d="M25.5 7a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM14 18.25c0-.69.56-1.25 1.25-1.25h22.5c.69 0 1.25.56 1.25 1.25V37.5a1 1 0 0 1-1.6.8l-4.07-3.05a1.25 1.25 0 0 0-.75-.25H15.25c-.69 0-1.25-.56-1.25-1.25v-15.5ZM7 24.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0ZM25.5 48a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM48 24.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z" opacity=".2"></path><path d="M21 3.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0ZM24.5 2a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3ZM0 23.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0ZM3.5 22a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3ZM21 44.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0Zm3.5-1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm20-23a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7ZM43 23.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm-23.23-3.14a1 1 0 0 1-.13 1.4l-2.08 1.74 2.08 1.73a1 1 0 1 1-1.28 1.54l-2.42-2.02a1.63 1.63 0 0 1 0-2.5l2.42-2.02a1 1 0 0 1 1.4.13Zm7.59 1.41a1 1 0 1 1 1.28-1.54l2.42 2.02c.78.65.78 1.85 0 2.5l-2.42 2.02a1 1 0 1 1-1.28-1.54l2.08-1.73-2.08-1.73ZM24.12 18a1 1 0 0 1 .87 1.12l-1 8a1 1 0 1 1-1.98-.24l1-8a1 1 0 0 1 1.11-.87Zm-11.87-5C11.01 13 10 14 10 15.25v15.5c0 1.24 1 2.25 2.25 2.25h17.33c.06 0 .11.02.15.05l4.07 3.05a2 2 0 0 0 3.2-1.6V15.25c0-1.24-1-2.25-2.25-2.25h-22.5ZM12 15.25c0-.14.11-.25.25-.25h22.5c.14 0 .25.11.25.25V34.5l-4.07-3.05a2.2 2.2 0 0 0-1.35-.45H12.25a.25.25 0 0 1-.25-.25v-15.5Zm7.24-10.68a1 1 0 1 0-.48-1.94A22.04 22.04 0 0 0 2.91 17.7a1 1 0 1 0 1.92.58 20.04 20.04 0 0 1 14.4-13.72Zm11.05-1.66a1 1 0 0 0-.58 1.92c6.45 1.92 11.54 7 13.46 13.46a1 1 0 1 0 1.92-.58 22.05 22.05 0 0 0-14.8-14.8ZM4.57 28.76a1 1 0 0 0-1.94.48 22.03 22.03 0 0 0 16.13 16.13 1 1 0 1 0 .48-1.94A20.03 20.03 0 0 1 4.57 28.76Zm40.8.48a1 1 0 1 0-1.94-.48 20.04 20.04 0 0 1-13.72 14.41 1 1 0 0 0 .58 1.92 22.04 22.04 0 0 0 15.08-15.85Z"></path></svg>
            <h5 class="pt4 fw-bold">Collectives™ on Stack Overflow</h5>
            <p class="my16 fs-caption fc-black-500">Find centralized, trusted content and collaborate around the technologies you use most.</p>
            <a href="/collectives" class="js-gps-track s-btn s-btn__filled s-btn__xs" data-gps-track="top_nav.click({is_current:false, location:2, destination:18})">
                Learn more about Collectives
            </a>
        </div>
    </div>

    <div class="s-popover ws2" id="popover-teams-create-cta" role="menu" aria-hidden="true">
        <div class="s-popover--arrow"></div>

        <div class="ps-relative overflow-hidden">
            <p class="mb2"><strong>Teams</strong></p>
            <p class="mb12 fs-caption fc-black-400">Q&amp;A for work</p>
            <p class="mb12 fs-caption fc-black-500">Connect and share knowledge within a single location that is structured and easy to search.</p>
            <a href="https://stackoverflow.co/teams/" class="js-gps-track s-btn s-btn__filled s-btn__xs" data-gps-track="teams.create.left-sidenav.click({ Action: CtaClick })" data-ga="[&quot;teams left navigation - anonymous&quot;,&quot;left nav cta&quot;,&quot;stackoverflow.com/teams&quot;,null,null]">
                Learn more about Teams
            </a>
        </div>

        <div class="ps-absolute t8 r8">
            <svg aria-hidden="true" class="fc-orange-400 svg-spot spotPeople" width="48" height="48" viewBox="0 0 48 48"><path d="M13.5 28a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9ZM7 30a1 1 0 0 1 1-1h11a1 1 0 0 1 1 1v5h11v-5a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v10a2 2 0 0 1-2 2H33v5a1 1 0 0 1-1 1H20a1 1 0 0 1-1-1v-5H8a1 1 0 0 1-1-1V30Zm25-6.5a4.5 4.5 0 1 0 9 0 4.5 4.5 0 0 0-9 0ZM24.5 34a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9Z" opacity=".2"></path><path d="M16.4 26.08A6 6 0 1 0 7.53 26C5.64 26.06 4 27.52 4 29.45V40a1 1 0 0 0 1 1h9a1 1 0 1 0 0-2h-4v-7a1 1 0 1 0-2 0v7H6v-9.55c0-.73.67-1.45 1.64-1.45H16a1 1 0 0 0 .4-1.92ZM12 18a4 4 0 1 1 0 8 4 4 0 0 1 0-8Zm16.47 14a6 6 0 1 0-8.94 0A3.6 3.6 0 0 0 16 35.5V46a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V35.5c0-1.94-1.64-3.42-3.53-3.5ZM20 28a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm-.3 6h8.6c1 0 1.7.75 1.7 1.5V45h-2v-7a1 1 0 1 0-2 0v7h-4v-7a1 1 0 1 0-2 0v7h-2v-9.5c0-.75.7-1.5 1.7-1.5ZM42 22c0 1.54-.58 2.94-1.53 4A3.5 3.5 0 0 1 44 29.45V40a1 1 0 0 1-1 1h-9a1 1 0 1 1 0-2h4v-7a1 1 0 1 1 2 0v7h2v-9.55A1.5 1.5 0 0 0 40.48 28H32a1 1 0 0 1-.4-1.92A6 6 0 1 1 42 22Zm-2 0a4 4 0 1 0-8 0 4 4 0 0 0 8 0Z"></path><g opacity=".35"><path d="M17 10a1 1 0 011-1h12a1 1 0 110 2H18a1 1 0 01-1-1Zm1-5a1 1 0 100 2h12a1 1 0 100-2H18ZM14 1a1 1 0 00-1 1v12a1 1 0 001 1h5.09l4.2 4.2a1 1 0 001.46-.04l3.7-4.16H34a1 1 0 001-1V2a1 1 0 00-1-1H14Zm1 12V3h18v10h-5a1 1 0 00-.75.34l-3.3 3.7-3.74-3.75a1 1 0 00-.71-.29H15Z"></path></g></svg>
        </div>
    </div>

    <div class="s-popover ws2" id="popover-labs-left-nav" role="menu" aria-hidden="true">
        <div class="s-popover--arrow"></div>
        <svg aria-hidden="true" class="fc-black-600 mb8 svg-icon iconLabs" width="42" height="18"><path d="M11.5 13.624a.374.374 0 0 1-.37.376H5.361a.374.374 0 0 1-.37-.376V4.376c0-.207.165-.376.37-.376H6.62c.204 0 .37.169.37.376v7.611h4.138c.205 0 .371.169.371.377v1.26zm9.432.215c-.07.1-.185.161-.308.161H19.13a.376.376 0 0 1-.356-.254l-.55-1.7h-3.111l-.55 1.7a.377.377 0 0 1-.355.254h-1.494a.376.376 0 0 1-.353-.506l3.39-9.247A.376.376 0 0 1 16.103 4h1.13c.158 0 .299.099.353.247l3.39 9.247a.376.376 0 0 1-.045.345zm-4.157-7.386l-1.219 3.531h2.266l-1.047-3.53zm13.335 5.71a.37.37 0 0 0-.003.524c.956.971 2.047 1.313 3.486 1.313 1.014 0 1.92-.265 2.582-.788.67-.53 1.063-1.306 1.063-2.255 0-.855-.268-1.622-.867-2.145-.456-.41-1.008-.633-1.89-.767l-1.037-.153c-.377-.057-.672-.19-.832-.332-.146-.132-.221-.315-.221-.568 0-.309.11-.56.306-.737.199-.179.518-.312.986-.312.708 0 1.254.151 1.726.601a.37.37 0 0 0 .516-.004l.883-.87a.37.37 0 0 0-.008-.534C35.942 4.334 35.004 4 33.721 4c-1.016 0-1.872.292-2.479.836-.61.548-.935 1.32-.935 2.207 0 .82.243 1.502.781 2.01h.001c.468.437 1.135.716 1.93.826l1.072.153c.508.073.647.147.795.286l.008.007c.14.125.234.34.234.67 0 .332-.124.567-.344.73-.235.174-.617.293-1.165.293-.867 0-1.49-.185-2.066-.76a.37.37 0 0 0-.522-.003l-.92.908zM22.37 14a.374.374 0 0 1-.37-.376V4.376c0-.207.166-.376.37-.376h3.543c.913 0 1.697.264 2.257.78.564.519.863 1.259.863 2.129 0 .845-.377 1.524-.87 1.947.57.433 1.01 1.145 1.01 2.157 0 .941-.317 1.702-.894 2.224-.57.517-1.354.763-2.225.763H22.37zm3.543-1.977c.96 0 .959-1.01.959-1.01s0-1.013-.959-1.013H24v2.023h1.913zm-.115-4.063c1.074 0 1.074-1.015 1.074-1.015s0-1.016-1.074-1.016H24V7.96h1.798z" fill="var(--black-600)"></path><path d="M0 4v10a4 4 0 0 0 4 4h34a4 4 0 0 0 4-4V4a4 4 0 0 0-4-4H4a4 4 0 0 0-4 4zm4-2h34a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z" fill="var(--black-600)"></path></svg>
        <p class="fs-caption">Get early access and see previews of new features.</p>
        <a class="s-btn s-btn__filled s-btn__xs s-btn__icon fs-fine" href="https://stackoverflow.co/labs/"><svg aria-hidden="true" class="svg-icon iconShareSm" width="14" height="14" viewBox="0 0 14 14"><path d="M5 1H3a2 2 0 0 0-2 2v8c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V9h-2v2H3V3h2V1Zm2 0h6v6h-2V4.5L6.5 9 5 7.5 9.5 3H7V1Z"></path></svg> Learn more about Labs</a>
    </div>



</div>



    <div id="content" class="snippet-hidden">

        

<div itemprop="mainEntity" itemscope="" itemtype="https://schema.org/Question">
<link itemprop="image" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a">

<div class="inner-content clearfix">
    

        <div id="question-header" class="d-flex sm:fd-column">
                    <h1 itemprop="name" class="fs-headline1 ow-break-word mb8 flex--item fl1"><a href="/questions/1077347/hello-world-in-python" class="question-hyperlink">Hello World in Python [duplicate]</a></h1>

            <div class="ml12 aside-cta flex--item sm:ml0 sm:mb12 sm:order-first d-flex jc-end">

                    <div class="ml12 aside-cta flex--item print:d-none">
                            <a href="/questions/ask" class="ws-nowrap s-btn s-btn__filled">
    Ask Question
</a>

                    </div>
            </div>
        </div>
        <div class="d-flex fw-wrap pb8 mb16 bb bc-black-200">
                <div class="flex--item ws-nowrap mr16 mb8" title="2009-07-03 00:27:53Z">
                    <span class="fc-black-400 mr2">Asked</span>
                    <time itemprop="dateCreated" datetime="2009-07-03T00:27:53">14 years, 10 months ago</time>
                </div>
                <div class="flex--item ws-nowrap mr16 mb8">
                    <span class="fc-black-400 mr2">Modified</span>
                    <a href="?lastactivity" class="s-link s-link__inherit" title="2023-11-26 00:31:33Z">5 months ago</a>
                </div>
                <div class="flex--item ws-nowrap mb8" title="Viewed 163,661 times">
                    <span class="fc-black-400 mr2">Viewed</span>
                    164k times
                </div>
        </div>

        <div id="mainbar" role="main" aria-label="question and answers">
            
<script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/71.en.js?v=7959a298059a"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/8427.en.js?v=46a04e4e6f05"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/6828.en.js?v=4c50b1e12ff1"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/1685.en.js?v=a34d99f7ef6c"></script><script defer="" src="https://cdn.sstatic.net/Js/webpack-chunks/8995.en.js?v=e080f4a7105a"></script><script defer="" src="https://cdn.sstatic.net/Js/islands/voting-prompt.en.js?v=3f2e60479740"></script>

<div class="question js-question" data-questionid="1077347" data-position-on-page="0" data-score="136" id="question">
<style>
</style>
<div class="js-zone-container zone-container-main mb8" style="min-height: auto; height: auto;">
<div id="dfp-tlb" class="everyonelovesstackoverflow everyoneloves__top-leaderboard everyoneloves__leaderboard" data-dfp-zone="true" data-google-query-id="CPCp6-r33oUDFftUDwIdPzINhA" style="min-height: auto; height: auto;"><div id="google_ads_iframe_/248424177/stackoverflow.com/lb/question-pages_0__container__" style="border: 0pt none; display: inline-block; width: 728px; height: 90px;"><iframe frameborder="0" src="https://af4fa0a32236753f4a5a37243b9c3fc5.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html" id="google_ads_iframe_/248424177/stackoverflow.com/lb/question-pages_0" title="3rd party ad content" name="" scrolling="no" marginwidth="0" marginheight="0" width="728" height="90" data-is-safeframe="true" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" allow="attribution-reporting" aria-label="Advertisement" tabindex="0" data-google-container-id="1" style="border: 0px; vertical-align: bottom;" data-load-complete="true"></iframe></div></div>
    <div class="js-report-ad-button-container " style="width: 728px; height: 24px;"><button data-google-event-data="{&quot;serviceName&quot;:&quot;publisher_ads&quot;,&quot;slot&quot;:{},&quot;isEmpty&quot;:false,&quot;slotContentChanged&quot;:true,&quot;size&quot;:[728,90],&quot;advertiserId&quot;:4784299191,&quot;campaignId&quot;:3536687468,&quot;creativeId&quot;:138471721272,&quot;creativeTemplateId&quot;:null,&quot;labelIds&quot;:null,&quot;lineItemId&quot;:6705465119,&quot;sourceAgnosticCreativeId&quot;:138471721272,&quot;sourceAgnosticLineItemId&quot;:6705465119,&quot;isBackfill&quot;:false,&quot;yieldGroupIds&quot;:null,&quot;companyIds&quot;:null,&quot;vast&quot;:null}" data-modal-url="/ads/report-ad" data-ad-unit="dfp-tlb" class="js-report-ad s-btn s-btn__link fs-fine mt2 float-right">Report this ad</button></div>
</div>


<div class="post-layout ">
    <div class="votecell post-layout--left">
        


<div class="js-voting-container d-flex jc-center fd-column ai-center gs4 fc-black-300" data-post-id="1077347" data-referrer="SearchResults">
    <button class="js-vote-up-btn flex--item s-btn s-btn__muted s-btn__outlined bar-pill bc-black-225 f:bc-theme-secondary-400 f:bg-theme-secondary-400 f:fc-black-050 h:bg-theme-primary-200" data-controller="s-tooltip" data-s-tooltip-placement="right" aria-pressed="false" aria-label="Up vote" data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100" data-unselected-classes="bc-black-225 f:bc-theme-secondary-400 f:bg-theme-secondary-400 f:fc-black-050 h:bg-theme-primary-200" aria-describedby="--stacks-s-tooltip-5t6qi6pk">
        <svg aria-hidden="true" class="svg-icon iconArrowUp" width="18" height="18" viewBox="0 0 18 18"><path d="M1 12h16L9 4l-8 8Z"></path></svg>
    </button><div id="--stacks-s-tooltip-5t6qi6pk" class="s-popover s-popover__tooltip" role="tooltip">This question shows research effort; it is useful and clear<div class="s-popover--arrow"></div></div>
    <input type="hidden" id="voteUpHash" value="69:3:31e,16:9d286deff8bffd13,10:1714102074,16:2cd4ad1fa35cb637,7:1077347,9271425159f0a314daab8d1385bbaab5ba48e57ad995d426cee8ea0693f54dbf">
    <div class="js-vote-count flex--item d-flex fd-column ai-center fc-theme-body-font fw-bold fs-subheading py4" itemprop="upvoteCount" data-value="136">
        136
    </div>
    <button class="js-vote-down-btn js-vote-down-question flex--item mb8 s-btn s-btn__muted s-btn__outlined bar-pill bc-black-225 f:bc-theme-secondary-400 f:bg-theme-secondary-400 f:fc-black-050 h:bg-theme-primary-200" title="This question does not show any research effort; it is unclear or not useful" aria-pressed="false" aria-label="Down vote" data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100" data-unselected-classes="bc-black-225 f:bc-theme-secondary-400 f:bg-theme-secondary-400 f:fc-black-050 h:bg-theme-primary-200">
        <svg aria-hidden="true" class="svg-icon iconArrowDown" width="18" height="18" viewBox="0 0 18 18"><path d="M1 6h16l-8 8-8-8Z"></path></svg>
    </button>
    <input type="hidden" id="voteDownHash" value="69:3:31e,16:37e3f3bfadf3e8d1,10:1714102074,16:2f81bf1ba68b1335,7:1077347,4a375ca87885712c465b6fb5230780089384510dc94956cd62e861eaaae9fe62">


    
<button class="js-saves-btn s-btn s-btn__unset c-pointer py4" type="button" id="saves-btn-1077347" data-controller="s-tooltip" data-s-tooltip-placement="right" data-s-popover-placement="" aria-pressed="false" data-post-id="1077347" data-post-type-id="1" data-user-privilege-for-post-click="0" aria-controls="" data-s-popover-auto-show="false" aria-describedby="--stacks-s-tooltip-q1xle4au">
<svg aria-hidden="true" class="fc-theme-primary-400 js-saves-btn-selected d-none svg-icon iconBookmark" width="18" height="18" viewBox="0 0 18 18"><path d="M3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"></path></svg>
<svg aria-hidden="true" class="js-saves-btn-unselected svg-icon iconBookmarkAlt" width="18" height="18" viewBox="0 0 18 18"><path d="m9 10.6 4 2.66V3H5v10.26l4-2.66ZM3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"></path></svg>
</button><div id="--stacks-s-tooltip-q1xle4au" class="s-popover s-popover__tooltip" role="tooltip">Save this question.<div class="s-popover--arrow"></div></div>









<a class="js-post-issue flex--item s-btn s-btn__unset c-pointer py6 mx-auto" href="/posts/1077347/timeline" data-shortcut="T" data-ks-title="timeline" data-controller="s-tooltip" data-s-tooltip-placement="right" aria-label="Timeline" aria-describedby="--stacks-s-tooltip-4xm7rn3a"><svg aria-hidden="true" class="mln2 mr0 svg-icon iconHistory" width="19" height="18" viewBox="0 0 19 18"><path d="M3 9a8 8 0 1 1 3.73 6.77L8.2 14.3A6 6 0 1 0 5 9l3.01-.01-4 4-4-4h3L3 9Zm7-4h1.01L11 9.36l3.22 2.1-.6.93L10 10V5Z"></path></svg></a><div id="--stacks-s-tooltip-4xm7rn3a" class="s-popover s-popover__tooltip" role="tooltip">Show activity on this post.<div class="s-popover--arrow"></div></div>

</div>

    </div>

    

<div class="postcell post-layout--right">

<div class="s-prose js-post-body" itemprop="text">
                <div>
        <aside class="s-notice s-notice__info post-notice js-post-notice mb16" role="status">
    <div class="d-flex fd-column fw-nowrap">
        <div class="d-flex fw-nowrap">
            <div class="flex--item wmn0 fl1 lh-lg">
                <div class="flex--item fl1 lh-lg">
                        <div>
                            <b>This question already has answers here</b>:
                            
                        </div>
                </div>
            </div>
        </div>
                <div class="flex--item mb0 mt4">
                    <a href="/questions/25445439/what-does-syntaxerror-missing-parentheses-in-call-to-print-mean-in-python" dir="ltr">What does "SyntaxError: Missing parentheses in call to 'print'" mean in Python?</a>
                        <span class="question-originals-answer-count">
                            (11 answers)
                        </span>
                </div>
            <div class="flex--item mb0 mt8">Closed <span title="2013-11-15 15:42:52Z" class="relativetime">10 years ago</span>.</div>
    </div>
</aside>

</div>

<p class="">I tried running a python script:</p>

<pre class="lang-py s-code-block"><code class="hljs language-python"><span class="hljs-built_in">print</span> <span class="hljs-string">"Hello, World!"</span> 
</code></pre>

<p class="">And I get this error:</p>

<pre class="lang-py s-code-block"><code class="hljs language-python">  File <span class="hljs-string">"hello.py"</span>, line <span class="hljs-number">1</span>
<span class="hljs-built_in">print</span> <span class="hljs-string">"Hello, World!"</span>
                    ^
SyntaxError: invalid syntax
</code></pre>

<p class="">What is going on?</p>
</div>

    <div class="mt24 mb12">
        <div class="post-taglist d-flex gs4 gsy fd-column">
            <div class="d-flex ps-relative fw-wrap">
                
                <ul class="ml0 list-ls-none js-post-tag-list-wrapper d-inline"><li class="d-inline mr4 js-post-tag-list-item"><a href="/questions/tagged/python" class="post-tag js-gps-track" title="show questions tagged 'python'" aria-label="show questions tagged 'python'" rel="tag" aria-labelledby="tag-python-tooltip-container" data-tag-menu-origin="Unknown">python</a></li><li class="d-inline mr4 js-post-tag-list-item"><a href="/questions/tagged/python-3.x" class="post-tag js-gps-track" title="" aria-label="show questions tagged 'python-3.x'" rel="tag" aria-labelledby="tag-python-3.x-tooltip-container" data-tag-menu-origin="Unknown">python-3.x</a></li></ul>
            </div>
        </div>
    </div>

<div class="mb0 ">
    <div class="mt16 d-flex gs8 gsy fw-wrap jc-end ai-start pt4 mb16">
        <div class="flex--item mr16 fl1 w96">
            


<div class="js-post-menu pt2" data-post-id="1077347" data-post-type-id="1">

<div class="d-flex gs8 s-anchors s-anchors__muted fw-wrap">

    <div class="flex--item">
        <a href="/q/1077347" rel="nofollow" itemprop="url" class="js-share-link js-gps-track" title="Short permalink to this question" data-gps-track="post.click({ item: 2, priv: 0, post_type: 1 })" data-controller="se-share-sheet s-popover" data-se-share-sheet-title="Share a link to this question" data-se-share-sheet-subtitle="" data-se-share-sheet-post-type="question" data-se-share-sheet-social="facebook twitter devto" data-se-share-sheet-location="1" data-se-share-sheet-license-url="https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f3.0%2f" data-se-share-sheet-license-name="CC BY-SA 3.0" data-s-popover-placement="bottom-start" aria-controls="se-share-sheet-0" data-action=" s-popover#toggle se-share-sheet#preventNavigation s-popover:show->se-share-sheet#willShow s-popover:shown->se-share-sheet#didShow" aria-expanded="false">Share</a><div class="s-popover z-dropdown s-anchors s-anchors__default" style="width: unset; max-width: 28em;" id="se-share-sheet-0"><div class="s-popover--arrow"></div><div><label for="share-sheet-input-se-share-sheet-0"><span class="js-title fw-bold">Share a link to this question</span> <span class="js-subtitle"></span></label></div><div class="my8"><input type="text" id="share-sheet-input-se-share-sheet-0" class="js-input s-input wmn3 sm:wmn-initial bc-black-300 bg-white fc-black-600" readonly=""></div><div class="d-flex jc-space-between ai-center mbn4"><button class="js-copy-link-btn s-btn s-btn__link js-gps-track" data-gps-track="">Copy link</button><a href="https://creativecommons.org/licenses/by-sa/3.0/" rel="license" class="js-license s-block-link w-auto" target="_blank" title="The current license for this post: CC BY-SA 3.0">CC BY-SA 3.0</a><div class="js-social-container d-none"></div></div></div>
    </div>


                <div class="flex--item">
                    <a href="/posts/1077347/edit" class="js-suggest-edit-post js-gps-track" data-gps-track="post.click({ item: 6, priv: 0, post_type: 1 })" title="">Improve this question</a>
                </div>

            <div class="flex--item">
                <button type="button" id="btnFollowPost-1077347" class="s-btn s-btn__link js-follow-post js-follow-question js-gps-track" data-gps-track="post.click({ item: 14, priv: 0, post_type: 1 })" data-controller="s-tooltip " data-s-tooltip-placement="bottom" data-s-popover-placement="bottom" aria-controls="" aria-describedby="--stacks-s-tooltip-d6awghn6">
                    Follow
                    <input type="hidden" id="voteFollowHash" value="69:3:31e,16:11dccab62550ec77,10:1714102074,16:0961c3b48e43a1d4,7:1077347,6f941430a02130f2163839ae8eabc154587682716b1a25473297fc152bca16e3">
                </button><div id="--stacks-s-tooltip-d6awghn6" class="s-popover s-popover__tooltip" role="tooltip">Follow this question to receive notifications<div class="s-popover--arrow"></div></div>
            </div>






</div>
<div class="js-menu-popup-container"></div>
</div>
        </div>

            <div class="post-signature flex--item">
<div class="user-info user-hover ">
<div class="d-flex ">
    <div class="user-action-time fl-grow1">
        <a href="/posts/1077347/revisions" title="show all edits to this post" class="js-gps-track" data-gps-track="post.click({ item: 4, priv: 0, post_type: 1 })">edited <span title="2014-05-10 20:59:50Z" class="relativetime">May 10, 2014 at 20:59</span></a>
    </div>
    
</div>
<div class="user-gravatar32">
    <a href="/users/1398425/ashley-medway"><div class="gravatar-wrapper-32"><img src="https://www.gravatar.com/avatar/7ffc73cefea10fc640c7d78e6beb4d89?s=64&amp;d=identicon&amp;r=PG" alt="Ashley Medway's user avatar" width="32" height="32" class="bar-sm"></div></a>
</div>
<div class="user-details">
    <a href="/users/1398425/ashley-medway">Ashley Medway</a>
    <div class="-flair">
        <span class="reputation-score" title="reputation score " dir="ltr">7,201</span><span title="7 gold badges" aria-hidden="true"><span class="badge1"></span><span class="badgecount">7</span></span><span class="v-visible-sr">7 gold badges</span><span title="50 silver badges" aria-hidden="true"><span class="badge2"></span><span class="badgecount">50</span></span><span class="v-visible-sr">50 silver badges</span><span title="72 bronze badges" aria-hidden="true"><span class="badge3"></span><span class="badgecount">72</span></span><span class="v-visible-sr">72 bronze badges</span>
    </div>
</div>
</div>
            </div>
        <div class="post-signature owner flex--item">
            <div class="user-info user-hover ">
<div class="d-flex ">
    <div class="user-action-time fl-grow1">
        asked <span title="2009-07-03 00:27:53Z" class="relativetime">Jul 3, 2009 at 0:27</span>
    </div>
    
</div>
<div class="user-gravatar32">
    <a href="/users/100835/miffthefox"><div class="gravatar-wrapper-32"><img src="https://www.gravatar.com/avatar/12a7f3f439fd1b4eaa8bd2eea27cbb36?s=64&amp;d=identicon&amp;r=PG" alt="MiffTheFox's user avatar" width="32" height="32" class="bar-sm"></div></a>
</div>
<div class="user-details" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
    <a href="/users/100835/miffthefox">MiffTheFox</a><span class="d-none" itemprop="name">MiffTheFox</span>
    <div class="-flair">
        <span class="reputation-score" title="reputation score 21,435" dir="ltr">21.4k</span><span title="14 gold badges" aria-hidden="true"><span class="badge1"></span><span class="badgecount">14</span></span><span class="v-visible-sr">14 gold badges</span><span title="70 silver badges" aria-hidden="true"><span class="badge2"></span><span class="badgecount">70</span></span><span class="v-visible-sr">70 silver badges</span><span title="98 bronze badges" aria-hidden="true"><span class="badge3"></span><span class="badgecount">98</span></span><span class="v-visible-sr">98 bronze badges</span>
    </div>
</div>
</div>


        </div>
    </div>
</div>

</div>




        <span class="d-none" itemprop="commentCount">7</span> 
<div class="post-layout--right js-post-comments-component">
    <div id="comments-1077347" class="comments js-comments-container bt bc-black-200 mt12 " data-post-id="1077347" data-min-length="15">
        <ul class="comments-list js-comments-list" data-remaining-comments-count="2" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true">

                    <li id="comment-890284" class="comment js-comment " data-comment-id="890284" data-comment-owner-id="893" data-comment-score="123">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="supernova">123</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">I suspect this will become the most-frequently-asked Python question for the next couple of years.</span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/893/greg-hewgill" title="972,572 reputation" class="comment-user">Greg Hewgill</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment890284_1077347" aria-label="Link to comment"><span title="2009-07-03 00:57:25Z, License: CC BY-SA 2.5" class="relativetime-clean">Jul 3, 2009 at 0:57</span></a></span>
        </div>
    </div>
</li>
<li id="comment-890312" class="comment js-comment " data-comment-id="890312" data-comment-owner-id="10661" data-comment-score="4">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="cool">4</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">Please post the results of <code>python --version</code></span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/10661/s-lott" title="388,416 reputation" class="comment-user">S.Lott</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment890312_1077347" aria-label="Link to comment"><span title="2009-07-03 01:06:24Z, License: CC BY-SA 2.5" class="relativetime-clean">Jul 3, 2009 at 1:06</span></a></span>
        </div>
    </div>
</li>
<li id="comment-890386" class="comment js-comment " data-comment-id="890386" data-comment-owner-id="38146" data-comment-score="8">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="warm">8</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">Just a thought: Python 3.0 should come with "Py3k warnings" on by default. Think of how many thousands of SO/newsgroup questions could be prevented by doing this.</span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/38146/rexe" title="17,455 reputation" class="comment-user">RexE</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment890386_1077347" aria-label="Link to comment"><span title="2009-07-03 01:59:25Z, License: CC BY-SA 2.5" class="relativetime-clean">Jul 3, 2009 at 1:59</span></a></span>
        </div>
    </div>
</li>
<li id="comment-10514205" class="comment js-comment " data-comment-id="10514205" data-comment-owner-id="372306" data-comment-score="18">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="hot">18</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">First time I see somebody asking a question about how to implement "Hello World" in a language. Makes you wonder what that says about the language if that's causing people trouble already... (since it's usually given as the first code example in any introduction).</span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/372306/peladao" title="4,052 reputation" class="comment-user">Peladao</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment10514205_1077347" aria-label="Link to comment"><span title="2011-12-13 21:07:46Z, License: CC BY-SA 3.0" class="relativetime-clean">Dec 13, 2011 at 21:07</span></a></span>
        </div>
    </div>
</li>
<li id="comment-32009920" class="comment js-comment " data-comment-id="32009920" data-comment-owner-id="541208" data-comment-score="1">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="cool">1</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">@GregHewgill viewed 53k times, you weren't too wrong.</span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/541208/tankorsmash" title="12,368 reputation" class="comment-user">TankorSmash</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment32009920_1077347" aria-label="Link to comment"><span title="2014-01-21 02:48:15Z, License: CC BY-SA 3.0" class="relativetime-clean">Jan 21, 2014 at 2:48</span></a></span>
        </div>
    </div>
</li>

        </ul>
    </div>

    <div id="comments-link-1077347" data-rep="50" data-anon="true">
                <a class="js-add-link comments-link dno" title="Use comments to ask for more information or suggest improvements. Avoid answering questions in comments." href="#" role="button"></a>
            <span class="js-link-separator dno">&nbsp;|&nbsp;</span>
        <a class="js-show-link comments-link " title="Expand to show all comments on this post" href="#" onclick="" role="button">Show <b>2</b> more comments</a>
    </div>         
</div>
</div>

</div>


<div class="js-zone-container zone-container-responsive">
<div id="dfp-isb" class="everyonelovesstackoverflow everyoneloves__inline-sidebar mx-auto" style="min-height: auto; height: auto; display: none;"></div>
    <div class="js-report-ad-button-container mx-auto" style="width: 300px"></div>
</div>

            
            
            <div id="answers">
                <a name="tab-top"></a>
                <div id="answers-header">
                    <div class="answers-subheader d-flex ai-center mb8">
                        <div class="flex--item fl1">
                            <h2 class="mb0" data-answercount="3">
                                    1 Answers
                                <span style="display:none;" itemprop="answerCount">3</span>
                            </h2>
                        </div>
                        <div class="flex--item">
                            

<div class="d-flex g4 gsx ai-center sm:fd-column sm:ai-start">
<div class="d-flex fd-column ai-end sm:ai-start">
    <label class="flex--item fs-caption" for="answer-sort-dropdown-select-menu">
        Sorted by:
    </label>
    <a class="js-sort-preference-change s-link flex--item fs-fine d-none" data-value="ScoreDesc" href="/questions/1077347/hello-world-in-python?answertab=scoredesc#tab-top">
        Reset to default
    </a>
</div>
<div class="flex--item s-select">
    <select id="answer-sort-dropdown-select-menu">
                <option value="scoredesc" selected="selected">
                    Highest score (default)
                </option>
                <option value="trending">
                    Trending (recent votes count more)
                </option>
                <option value="modifieddesc">
                    Date modified (newest first)
                </option>
                <option value="createdasc">
                    Date created (oldest first)
                </option>
    </select>
</div>
</div>


                        </div>
                    </div>
                        
                </div>


                                
<a name="1077349"></a>
<div id="answer-1077349" class="answer js-answer accepted-answer js-accepted-answer" data-answerid="1077349" data-parentid="1077347" data-score="186" data-position-on-page="1" data-highest-scored="1" data-question-has-accepted-highest-score="1" itemprop="acceptedAnswer" itemscope="" itemtype="https://schema.org/Answer">
<div class="post-layout">
    <div class="votecell post-layout--left">
        


<div class="js-voting-container d-flex jc-center fd-column ai-center gs4 fc-black-300" data-post-id="1077349" data-referrer="SearchResults">
    <button class="js-vote-up-btn flex--item s-btn s-btn__muted s-btn__outlined bar-pill bc-black-225 f:bc-theme-secondary-400 f:bg-theme-secondary-400 f:fc-black-050 h:bg-theme-primary-200" data-controller="s-tooltip" data-s-tooltip-placement="right" aria-pressed="false" aria-label="Up vote" data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100" data-unselected-classes="bc-black-225 f:bc-theme-secondary-400 f:bg-theme-secondary-400 f:fc-black-050 h:bg-theme-primary-200" aria-describedby="--stacks-s-tooltip-81whexd4">
        <svg aria-hidden="true" class="svg-icon iconArrowUp" width="18" height="18" viewBox="0 0 18 18"><path d="M1 12h16L9 4l-8 8Z"></path></svg>
    </button><div id="--stacks-s-tooltip-81whexd4" class="s-popover s-popover__tooltip" role="tooltip">This answer is useful<div class="s-popover--arrow"></div></div>
    <input type="hidden" id="voteUpHash" value="69:3:31e,16:8ed9443cd27d9c1f,10:1714102074,16:5039cf86b85cb5c8,7:1077349,0ff1166f00ac7098344d046c16700796143dc264ae1a2ea619dca43b4d472e43">
    <div class="js-vote-count flex--item d-flex fd-column ai-center fc-theme-body-font fw-bold fs-subheading py4" itemprop="upvoteCount" data-value="186">
        186
    </div>
    <button class="js-vote-down-btn flex--item mb8 s-btn s-btn__muted s-btn__outlined bar-pill bc-black-225 f:bc-theme-secondary-400 f:bg-theme-secondary-400 f:fc-black-050 h:bg-theme-primary-200" title="This answer is not useful" aria-pressed="false" aria-label="Down vote" data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100" data-unselected-classes="bc-black-225 f:bc-theme-secondary-400 f:bg-theme-secondary-400 f:fc-black-050 h:bg-theme-primary-200">
        <svg aria-hidden="true" class="svg-icon iconArrowDown" width="18" height="18" viewBox="0 0 18 18"><path d="M1 6h16l-8 8-8-8Z"></path></svg>
    </button>
    <input type="hidden" id="voteDownHash" value="69:3:31e,16:dcad40f60118b35e,10:1714102074,16:285a324a8193c0fc,7:1077349,73dec5f614f8ffb1435a3900b38731ac11234dd94ec4cccb5f583c94ac795835">


    
<button class="js-saves-btn s-btn s-btn__unset c-pointer py4" type="button" id="saves-btn-1077349" data-controller="s-tooltip" data-s-tooltip-placement="right" data-s-popover-placement="" aria-pressed="false" data-post-id="1077349" data-post-type-id="2" data-user-privilege-for-post-click="0" aria-controls="" data-s-popover-auto-show="false" aria-describedby="--stacks-s-tooltip-mleoqghu">
<svg aria-hidden="true" class="fc-theme-primary-400 js-saves-btn-selected d-none svg-icon iconBookmark" width="18" height="18" viewBox="0 0 18 18"><path d="M3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"></path></svg>
<svg aria-hidden="true" class="js-saves-btn-unselected svg-icon iconBookmarkAlt" width="18" height="18" viewBox="0 0 18 18"><path d="m9 10.6 4 2.66V3H5v10.26l4-2.66ZM3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"></path></svg>
</button><div id="--stacks-s-tooltip-mleoqghu" class="s-popover s-popover__tooltip" role="tooltip">Save this answer.<div class="s-popover--arrow"></div></div>







        <div class="js-accepted-answer-indicator flex--item fc-green-400 py6 mtn8" data-s-tooltip-placement="right" title="Loading when this answer was accepted…" tabindex="0" role="note" aria-label="Accepted">
            <div class="ta-center">
                <svg aria-hidden="true" class="svg-icon iconCheckmarkLg" width="36" height="36" viewBox="0 0 36 36"><path d="m6 14 8 8L30 6v8L14 30l-8-8v-8Z"></path></svg>
            </div>
        </div>


<a class="js-post-issue flex--item s-btn s-btn__unset c-pointer py6 mx-auto" href="/posts/1077349/timeline" data-shortcut="T" data-ks-title="timeline" data-controller="s-tooltip" data-s-tooltip-placement="right" aria-label="Timeline" aria-describedby="--stacks-s-tooltip-u2vw579c"><svg aria-hidden="true" class="mln2 mr0 svg-icon iconHistory" width="19" height="18" viewBox="0 0 19 18"><path d="M3 9a8 8 0 1 1 3.73 6.77L8.2 14.3A6 6 0 1 0 5 9l3.01-.01-4 4-4-4h3L3 9Zm7-4h1.01L11 9.36l3.22 2.1-.6.93L10 10V5Z"></path></svg></a><div id="--stacks-s-tooltip-u2vw579c" class="s-popover s-popover__tooltip" role="tooltip">Show activity on this post.<div class="s-popover--arrow"></div></div>

</div>

    </div>

    

<div class="answercell post-layout--right">

<div class="s-prose js-post-body" itemprop="text">
<pre class="lang-py s-code-block"><code class="hljs language-python"><span class="hljs-built_in">print</span>(<span class="hljs-string">"Hello, World!"</span>)
</code></pre>

<p>You are probably using Python 3.0, where <code>print</code> is <a href="http://docs.python.org/release/3.0.1/whatsnew/3.0.html#print-is-a-function" rel="noreferrer">now a function</a> (hence the parenthesis) instead of a statement.</p>
</div>
<div class="mt24">
    <div class="d-flex fw-wrap ai-start jc-end gs8 gsy">
        <time itemprop="dateCreated" datetime="2009-07-03T00:28:38"></time>
        <div class="flex--item mr16" style="flex: 1 1 100px;">
            


<div class="js-post-menu pt2" data-post-id="1077349" data-post-type-id="2">

<div class="d-flex gs8 s-anchors s-anchors__muted fw-wrap">

    <div class="flex--item">
        <a href="/a/1077349" rel="nofollow" itemprop="url" class="js-share-link js-gps-track" title="Short permalink to this answer" data-gps-track="post.click({ item: 2, priv: 0, post_type: 2 })" data-controller="se-share-sheet s-popover" data-se-share-sheet-title="Share a link to this answer" data-se-share-sheet-subtitle="" data-se-share-sheet-post-type="answer" data-se-share-sheet-social="facebook twitter devto" data-se-share-sheet-location="2" data-se-share-sheet-license-url="https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f3.0%2f" data-se-share-sheet-license-name="CC BY-SA 3.0" data-s-popover-placement="bottom-start" aria-controls="se-share-sheet-1" data-action=" s-popover#toggle se-share-sheet#preventNavigation s-popover:show->se-share-sheet#willShow s-popover:shown->se-share-sheet#didShow" aria-expanded="false">Share</a><div class="s-popover z-dropdown s-anchors s-anchors__default" style="width: unset; max-width: 28em;" id="se-share-sheet-1"><div class="s-popover--arrow"></div><div><label for="share-sheet-input-se-share-sheet-1"><span class="js-title fw-bold">Share a link to this answer</span> <span class="js-subtitle"></span></label></div><div class="my8"><input type="text" id="share-sheet-input-se-share-sheet-1" class="js-input s-input wmn3 sm:wmn-initial bc-black-300 bg-white fc-black-600" readonly=""></div><div class="d-flex jc-space-between ai-center mbn4"><button class="js-copy-link-btn s-btn s-btn__link js-gps-track" data-gps-track="">Copy link</button><a href="https://creativecommons.org/licenses/by-sa/3.0/" rel="license" class="js-license s-block-link w-auto" target="_blank" title="The current license for this post: CC BY-SA 3.0">CC BY-SA 3.0</a><div class="js-social-container d-none"></div></div></div>
    </div>


                <div class="flex--item">
                    <a href="/posts/1077349/edit" class="js-suggest-edit-post js-gps-track" data-gps-track="post.click({ item: 6, priv: 0, post_type: 2 })" title="">Improve this answer</a>
                </div>

            <div class="flex--item">
                <button type="button" id="btnFollowPost-1077349" class="s-btn s-btn__link js-follow-post js-follow-answer js-gps-track" data-gps-track="post.click({ item: 14, priv: 0, post_type: 2 })" data-controller="s-tooltip " data-s-tooltip-placement="bottom" data-s-popover-placement="bottom" aria-controls="" aria-describedby="--stacks-s-tooltip-642n5svm">
                    Follow
                    <input type="hidden" id="voteFollowHash" value="69:3:31e,16:6901e7d668ba50ee,10:1714102074,16:842ba9f9eebf3410,7:1077349,41a5131fa227b7be43ead4c70710db46ea9b227010afa002b34827b8bfa6c4cc">
                </button><div id="--stacks-s-tooltip-642n5svm" class="s-popover s-popover__tooltip" role="tooltip">Follow this answer to receive notifications<div class="s-popover--arrow"></div></div>
            </div>






</div>
<div class="js-menu-popup-container"></div>
</div>
        </div>
        <div class="post-signature flex--item fl0">
<div class="user-info user-hover ">
<div class="d-flex ">
    <div class="user-action-time fl-grow1">
        <a href="/posts/1077349/revisions" title="show all edits to this post" class="js-gps-track" data-gps-track="post.click({ item: 4, priv: 0, post_type: 2 })">edited <span title="2012-09-07 06:19:22Z" class="relativetime">Sep 7, 2012 at 6:19</span></a>
    </div>
    
</div>
<div class="user-gravatar32">
    <a href="/users/21567/christian-k"><div class="gravatar-wrapper-32"><img src="https://www.gravatar.com/avatar/23a053b78fc2567576235b77fa2e4c16?s=64&amp;d=identicon&amp;r=PG" alt="Christian.K's user avatar" width="32" height="32" class="bar-sm"></div></a>
</div>
<div class="user-details">
    <a href="/users/21567/christian-k">Christian.K</a>
    <div class="-flair">
        <span class="reputation-score" title="reputation score 48,570" dir="ltr">48.6k</span><span title="10 gold badges" aria-hidden="true"><span class="badge1"></span><span class="badgecount">10</span></span><span class="v-visible-sr">10 gold badges</span><span title="102 silver badges" aria-hidden="true"><span class="badge2"></span><span class="badgecount">102</span></span><span class="v-visible-sr">102 silver badges</span><span title="145 bronze badges" aria-hidden="true"><span class="badge3"></span><span class="badgecount">145</span></span><span class="v-visible-sr">145 bronze badges</span>
    </div>
</div>
</div>
        </div>


        <div class="post-signature flex--item fl0">
            <div class="user-info ">
<div class="d-flex ">
    <div class="user-action-time fl-grow1">
        answered <span title="2009-07-03 00:28:38Z" class="relativetime">Jul 3, 2009 at 0:28</span>
    </div>
    
</div>
<div class="user-gravatar32">
    <a href="/users/57757/unknown"><div class="gravatar-wrapper-32"><img src="https://www.gravatar.com/avatar/12d12320bb9a578802cfd9c8cb312e33?s=64&amp;d=identicon&amp;r=PG" alt="Unknown's user avatar" width="32" height="32" class="bar-sm"></div></a>
</div>
<div class="user-details" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
    <a href="/users/57757/unknown">Unknown</a><span class="d-none" itemprop="name">Unknown</span>
    <div class="-flair">
        <span class="reputation-score" title="reputation score 46,345" dir="ltr">46.3k</span><span title="27 gold badges" aria-hidden="true"><span class="badge1"></span><span class="badgecount">27</span></span><span class="v-visible-sr">27 gold badges</span><span title="141 silver badges" aria-hidden="true"><span class="badge2"></span><span class="badgecount">141</span></span><span class="v-visible-sr">141 silver badges</span><span title="182 bronze badges" aria-hidden="true"><span class="badge3"></span><span class="badgecount">182</span></span><span class="v-visible-sr">182 bronze badges</span>
    </div>
</div>
</div>


        </div>
    </div>
    

</div>

</div>




        <span class="d-none" itemprop="commentCount">7</span> 
<div class="post-layout--right js-post-comments-component">
    <div id="comments-1077349" class="comments js-comments-container bt bc-black-200 mt12 " data-post-id="1077349" data-min-length="15">
        <ul class="comments-list js-comments-list" data-remaining-comments-count="2" data-canpost="false" data-cansee="true" data-comments-unavailable="false" data-addlink-disabled="true">

                    <li id="comment-890220" class="comment js-comment " data-comment-id="890220" data-comment-owner-id="100835" data-comment-score="1">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="cool">1</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">Thank you, this worked.  I don't know why this isn't more common knowledge, because I just copy-pasted from the first Google result for Python Hello World.</span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/100835/miffthefox" title="21,435 reputation" class="comment-user owner">MiffTheFox</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment890220_1077349" aria-label="Link to comment"><span title="2009-07-03 00:29:53Z, License: CC BY-SA 2.5" class="relativetime-clean">Jul 3, 2009 at 0:29</span></a></span>
        </div>
    </div>
</li>
<li id="comment-890221" class="comment js-comment " data-comment-id="890221" data-comment-owner-id="16417" data-comment-score="1">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="cool">1</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">"requires parenthesis" is not really the adequate explanation as to the change from 2.x to 3 :)</span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/16417/paolo-bergantino" title="484,758 reputation" class="comment-user">Paolo Bergantino</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment890221_1077349" aria-label="Link to comment"><span title="2009-07-03 00:29:56Z, License: CC BY-SA 2.5" class="relativetime-clean">Jul 3, 2009 at 0:29</span></a></span>
        </div>
    </div>
</li>
<li id="comment-890227" class="comment js-comment " data-comment-id="890227" data-comment-owner-id="16417" data-comment-score="15">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="hot">15</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">@MiffTheFox: Python 2.x uses print as a statement. The relatively new Python 3 made print a function instead. The majority of Python programmers are still using 2.x because of its extensive library and framework support, so 3.0 isn't nearly as adopted as you'd expect for now.</span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/16417/paolo-bergantino" title="484,758 reputation" class="comment-user">Paolo Bergantino</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment890227_1077349" aria-label="Link to comment"><span title="2009-07-03 00:31:06Z, License: CC BY-SA 2.5" class="relativetime-clean">Jul 3, 2009 at 0:31</span></a></span>
        </div>
    </div>
</li>
<li id="comment-890237" class="comment js-comment " data-comment-id="890237" data-comment-owner-id="57757" data-comment-score="2">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="cool">2</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">@paulo, its the most succinct. If I had said, it is now a function, I would have to then explain what the difference between a statement and an expression is and how a function fits into the whole picture.</span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/57757/unknown" title="46,345 reputation" class="comment-user">Unknown</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment890237_1077349" aria-label="Link to comment"><span title="2009-07-03 00:34:37Z, License: CC BY-SA 2.5" class="relativetime-clean">Jul 3, 2009 at 0:34</span></a></span>
        </div>
    </div>
</li>
<li id="comment-890310" class="comment js-comment " data-comment-id="890310" data-comment-owner-id="14955" data-comment-score="3">
    <div class="js-comment-actions comment-actions">
        <div class="comment-score js-comment-score js-comment-edit-hide">
                <span title="number of 'useful comment' votes received" class="cool">3</span>
        </div>
    </div>
    <div class="comment-text  js-comment-text-and-form">
        <div class="comment-body js-comment-edit-hide">
            
            <span class="comment-copy">They should have a special error message for cases like this with a bit more explanation. With all the documentation out there for Python 2, this kind of incompatible syntax change is bound to frustrate the uninitiated a lot.</span>
            
            <div class="d-inline-flex ai-center">
–&nbsp;<a href="/users/14955/thilo" title="259,934 reputation" class="comment-user">Thilo</a>
            </div>
            <span class="comment-date" dir="ltr"><a class="comment-link" href="#comment890310_1077349" aria-label="Link to comment"><span title="2009-07-03 01:06:05Z, License: CC BY-SA 2.5" class="relativetime-clean">Jul 3, 2009 at 1:06</span></a></span>
        </div>
    </div>
</li>

        </ul>
    </div>

    <div id="comments-link-1077349" data-rep="50" data-anon="true">
                <a class="js-add-link comments-link dno" title="Use comments to ask for more information or suggest improvements. Avoid comments like “+1” or “thanks”." href="#" role="button"></a>
            <span class="js-link-separator dno">&nbsp;|&nbsp;</span>
        <a class="js-show-link comments-link " title="Expand to show all comments on this post" href="#" onclick="" role="button">Show <b>2</b> more comments</a>
    </div>         
</div>
</div>
</div>

<div class="js-zone-container zone-container-main">
<div id="dfp-mlb" class="everyonelovesstackoverflow everyoneloves__mid-leaderboard everyoneloves__leaderboard" data-google-query-id="CNq58Or33oUDFb5SDwIdZqAOcw" style="min-height: auto; height: auto; display: none;"><div id="google_ads_iframe_/248424177/stackoverflow.com/mlb/question-pages_0__container__" style="border: 0pt none; width: 728px; height: 0px;"></div></div>
    <div class="js-report-ad-button-container " style="width: 728px"></div>
</div>
                                
<a name="1124893"></a>


                                
<a name="8493347"></a>





                        <h2 class="bottom-notice" data-loc="1">
                            <div>
Not the answer you're looking for? Browse other questions tagged <ul class="ml0 list-ls-none js-post-tag-list-wrapper d-inline"><li class="d-inline mr4 js-post-tag-list-item"><a href="/questions/tagged/python" class="post-tag" title="show questions tagged 'python'" aria-label="show questions tagged 'python'" rel="tag" aria-labelledby="tag-python-tooltip-container" data-tag-menu-origin="Unknown">python</a></li><li class="d-inline mr4 js-post-tag-list-item"><a href="/questions/tagged/python-3.x" class="post-tag" title="show questions tagged 'python-3.x'" aria-label="show questions tagged 'python-3.x'" rel="tag" aria-labelledby="tag-python-3.x-tooltip-container" data-tag-menu-origin="Unknown">python-3.x</a></li></ul> or <a href="/questions/ask">ask your own question</a>.                                </div>
                        </h2>
            </div>
        </div>

        
<div id="sidebar" class="show-votes" role="complementary" aria-label="sidebar">
    


<div class="s-sidebarwidget s-sidebarwidget__yellow s-anchors s-anchors__grayscale mb16" data-tracker="cb=1">
    <ul class="d-block p0 m0">
                    <li class="s-sidebarwidget--header s-sidebarwidget__small-bold-text d-flex fc-black-500 d:fc-black-600 bb bbw1">
                        The Overflow Blog
                    </li>
    <li class="s-sidebarwidget--item d-flex px16">
        <div class="flex--item1 fl-shrink0">
<svg aria-hidden="true" class="va-text-top svg-icon iconPencilSm" width="14" height="14" viewBox="0 0 14 14"><path fill="#F1B600" d="m2 10.12 6.37-6.43 1.88 1.88L3.88 12H2v-1.88Z"></path><path fill="#E87C87" d="m11.1 1.71 1.13 1.12c.2.2.2.51 0 .71L11.1 4.7 9.21 2.86l1.17-1.15c.2-.2.51-.2.71 0Z"></path></svg>            </div>
        <div class="flex--item wmn0 ow-break-word">
            <a href="https://stackoverflow.blog/2024/04/23/is-genai-the-next-dot-com-bubble/?cb=1" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;The Overflow Blog&quot;,&quot;https://stackoverflow.blog/2024/04/23/is-genai-the-next-dot-com-bubble/&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 1, position: 0 })">Is GenAI the next dot-com bubble?</a>
        </div>
    </li>
    <li class="s-sidebarwidget--item d-flex px16">
        <div class="flex--item1 fl-shrink0">
<svg aria-hidden="true" class="va-text-top svg-icon iconPencilSm" width="14" height="14" viewBox="0 0 14 14"><path fill="#F1B600" d="m2 10.12 6.37-6.43 1.88 1.88L3.88 12H2v-1.88Z"></path><path fill="#E87C87" d="m11.1 1.71 1.13 1.12c.2.2.2.51 0 .71L11.1 4.7 9.21 2.86l1.17-1.15c.2-.2.51-.2.71 0Z"></path></svg>            </div>
        <div class="flex--item wmn0 ow-break-word">
            <a href="https://stackoverflow.blog/2024/04/25/what-language-should-beginning-programmers-choose/?cb=1" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;The Overflow Blog&quot;,&quot;https://stackoverflow.blog/2024/04/25/what-language-should-beginning-programmers-choose/&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 1, position: 1 })">What language should beginning programmers choose?</a>
        </div>
    </li>
                    <li class="s-sidebarwidget--header s-sidebarwidget__small-bold-text d-flex fc-black-500 d:fc-black-600 bb bbw1">
                        Featured on Meta
                    </li>
    <li class="s-sidebarwidget--item d-flex px16">
        <div class="flex--item1 fl-shrink0">
<div class="favicon favicon-stackexchangemeta" title="Meta Stack Exchange"></div>            </div>
        <div class="flex--item wmn0 ow-break-word">
            <a href="https://meta.stackexchange.com/questions/398704/new-focus-styles-updated-styling-for-button-groups?cb=1" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;Featured on Meta&quot;,&quot;https://meta.stackexchange.com/questions/398704/new-focus-styles-updated-styling-for-button-groups&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 3, position: 2 })">New Focus Styles &amp; Updated Styling for Button Groups</a>
        </div>
    </li>
    <li class="s-sidebarwidget--item d-flex px16">
        <div class="flex--item1 fl-shrink0">
<div class="favicon favicon-stackexchangemeta" title="Meta Stack Exchange"></div>            </div>
        <div class="flex--item wmn0 ow-break-word">
            <a href="https://meta.stackexchange.com/questions/398734/upcoming-initiatives-on-stack-overflow-and-across-the-stack-exchange-network?cb=1" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;Featured on Meta&quot;,&quot;https://meta.stackexchange.com/questions/398734/upcoming-initiatives-on-stack-overflow-and-across-the-stack-exchange-network&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 3, position: 3 })">Upcoming initiatives on Stack Overflow and across the Stack Exchange network</a>
        </div>
    </li>
    <li class="s-sidebarwidget--item d-flex px16">
        <div class="flex--item1 fl-shrink0">
<div class="favicon favicon-stackoverflowmeta" title="Meta Stack Overflow"></div>            </div>
        <div class="flex--item wmn0 ow-break-word">
            <a href="https://meta.stackoverflow.com/questions/429739/pausing-the-1-rep-voting-experiment-on-stack-overflow-reflecting-on-the-feedbac?cb=1" class="js-gps-track" title="Pausing the 1-rep voting experiment on Stack Overflow: reflecting on the feedback and rethinking the approach" data-ga="[&quot;community bulletin board&quot;,&quot;Featured on Meta&quot;,&quot;https://meta.stackoverflow.com/questions/429739/pausing-the-1-rep-voting-experiment-on-stack-overflow-reflecting-on-the-feedbac&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 6, position: 4 })">Pausing the 1-rep voting experiment on Stack Overflow: reflecting on the...</a>
        </div>
    </li>
    <li class="s-sidebarwidget--item d-flex px16">
        <div class="flex--item1 fl-shrink0">
<div class="favicon favicon-stackoverflowmeta" title="Meta Stack Overflow"></div>            </div>
        <div class="flex--item wmn0 ow-break-word">
            <a href="https://meta.stackoverflow.com/questions/421831/temporary-policy-generative-ai-e-g-chatgpt-is-banned?cb=1" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;Featured on Meta&quot;,&quot;https://meta.stackoverflow.com/questions/421831/temporary-policy-generative-ai-e-g-chatgpt-is-banned&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 6, position: 5 })">Temporary policy: Generative AI (e.g., ChatGPT) is banned</a>
        </div>
    </li>
    </ul>
</div>


<div class="js-zone-container zone-container-sidebar" style="min-height: auto; height: auto;">
<div id="dfp-tsb" class="everyonelovesstackoverflow everyoneloves__top-sidebar" data-dfp-zone="true" data-google-query-id="CIrp6-r33oUDFdhbDwIdYzoDtQ" style="min-height: auto; height: auto;"><div id="google_ads_iframe_/248424177/stackoverflow.com/sb/question-pages_0__container__" style="border: 0pt none; display: inline-block; width: 300px; height: 250px;"><iframe frameborder="0" src="https://af4fa0a32236753f4a5a37243b9c3fc5.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html" id="google_ads_iframe_/248424177/stackoverflow.com/sb/question-pages_0" title="3rd party ad content" name="" scrolling="no" marginwidth="0" marginheight="0" width="300" height="250" data-is-safeframe="true" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" allow="attribution-reporting" aria-label="Advertisement" tabindex="0" data-google-container-id="2" style="border: 0px; vertical-align: bottom;" data-load-complete="true"></iframe></div></div>
    <div class="js-report-ad-button-container " style="width: 300px; height: 24px;"><button data-google-event-data="{&quot;serviceName&quot;:&quot;publisher_ads&quot;,&quot;slot&quot;:{},&quot;isEmpty&quot;:false,&quot;slotContentChanged&quot;:true,&quot;size&quot;:[300,250],&quot;advertiserId&quot;:4784299191,&quot;campaignId&quot;:3536687468,&quot;creativeId&quot;:138472456330,&quot;creativeTemplateId&quot;:null,&quot;labelIds&quot;:null,&quot;lineItemId&quot;:6705465119,&quot;sourceAgnosticCreativeId&quot;:138472456330,&quot;sourceAgnosticLineItemId&quot;:6705465119,&quot;isBackfill&quot;:false,&quot;yieldGroupIds&quot;:null,&quot;companyIds&quot;:null,&quot;vast&quot;:null}" data-modal-url="/ads/report-ad" data-ad-unit="dfp-tsb" class="js-report-ad s-btn s-btn__link fs-fine mt2 float-right">Report this ad</button></div>
</div>
<div class="js-zone-container zone-container-sidebar">
<div id="dfp-msb" class="everyonelovesstackoverflow everyoneloves__mid-sidebar" data-dfp-zone="true" data-google-query-id="CInk6-r33oUDFURrDwIdJekFfA" style="min-height: auto; height: auto; display: none;"><div id="google_ads_iframe_/248424177/stackoverflow.com/msb/question-pages_0__container__" style="border: 0pt none; width: 300px; height: 0px;"></div></div>
    <div class="js-report-ad-button-container " style="width: 300px"></div>
</div>
<div id="hireme"></div>        <div class="module sidebar-linked">
<h4 id="h-linked">Linked</h4>
    <div class="linked" data-tracker="lq=1">
        <div class="spacer js-gps-track" data-gps-track="linkedquestion.click({ source_post_id: 1077347, target_question_id: 25445439, position: 0 })">
            <a href="https://stackoverflow.com/q/25445439?lq=1" title="Question score (upvotes - downvotes)">
                <div class="answer-votes answered-accepted large">461</div>
            </a>
            <a href="https://stackoverflow.com/questions/25445439/what-does-syntaxerror-missing-parentheses-in-call-to-print-mean-in-python?noredirect=1&amp;lq=1" class="question-hyperlink">What does "SyntaxError: Missing parentheses in call to 'print'" mean in Python?</a>
        </div>
</div>
</div>





    <div class="module sidebar-related">
        <h4 id="h-related">Related</h4>
        <div class="related js-gps-related-questions" data-tracker="rq=1">
                <div class="spacer" data-question-id="419163">
                    <a href="https://stackoverflow.com/q/419163?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">8217</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/419163/what-does-if-name-main-do?rq=1" class="question-hyperlink">What does if __name__ == "__main__": do?</a>
                </div>
                <div class="spacer" data-question-id="231767">
                    <a href="https://stackoverflow.com/q/231767?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">12894</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do-in-python?rq=1" class="question-hyperlink">What does the "yield" keyword do in Python?</a>
                </div>
                <div class="spacer" data-question-id="30081275">
                    <a href="https://stackoverflow.com/q/30081275?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">3014</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/30081275/why-is-1000000000000000-in-range1000000000000001-so-fast-in-python-3?rq=1" class="question-hyperlink">Why is "1000000000000000 in range(1000000000000001)" so fast in Python 3?</a>
                </div>
                <div class="spacer" data-question-id="394809">
                    <a href="https://stackoverflow.com/q/394809?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">7920</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/394809/does-python-have-a-ternary-conditional-operator?rq=1" class="question-hyperlink">Does Python have a ternary conditional operator?</a>
                </div>
                <div class="spacer" data-question-id="100003">
                    <a href="https://stackoverflow.com/q/100003?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">7376</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/100003/what-are-metaclasses-in-python?rq=1" class="question-hyperlink">What are metaclasses in Python?</a>
                </div>
                <div class="spacer" data-question-id="986006">
                    <a href="https://stackoverflow.com/q/986006?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">3298</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/986006/how-do-i-pass-a-variable-by-reference?rq=1" class="question-hyperlink">How do I pass a variable by reference?</a>
                </div>
                <div class="spacer" data-question-id="38987">
                    <a href="https://stackoverflow.com/q/38987?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">6942</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/38987/how-do-i-merge-two-dictionaries-in-a-single-expression-in-python?rq=1" class="question-hyperlink">How do I merge two dictionaries in a single expression in Python?</a>
                </div>
                <div class="spacer" data-question-id="606191">
                    <a href="https://stackoverflow.com/q/606191?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">3762</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/606191/convert-bytes-to-a-string-in-python-3?rq=1" class="question-hyperlink">Convert bytes to a string in Python 3</a>
                </div>
                <div class="spacer" data-question-id="9371238">
                    <a href="https://stackoverflow.com/q/9371238?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">2180</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/9371238/why-is-reading-lines-from-stdin-much-slower-in-c-than-python?rq=1" class="question-hyperlink">Why is reading lines from stdin much slower in C++ than Python?</a>
                </div>
                <div class="spacer" data-question-id="1132941">
                    <a href="https://stackoverflow.com/q/1132941?rq=1" title="Question score (upvotes - downvotes)">
                        <div class="answer-votes answered-accepted extra-large">3421</div>
                    </a>
                    <a href="https://stackoverflow.com/questions/1132941/least-astonishment-and-the-mutable-default-argument?rq=1" class="question-hyperlink">"Least Astonishment" and the Mutable Default Argument</a>
                </div>
        </div>
    </div>
    <script type="text/javascript">
             $(function() {
                 $(".js-gps-related-questions .spacer").on("click", function () {
                    fireRelatedEvent($(this).index() + 1, $(this).data('question-id'));
                 });

             function fireRelatedEvent(position, questionId) {
                 StackExchange.using("gps", function() {
                     StackExchange.gps.track('related_questions.click',
                     {
                         position: position,
                         originQuestionId: 1077347,
                         relatedQuestionId: +questionId,
                         location: 'sidebar',
                         source: 'Baseline_Fallback'
                     });    
                 });
             }
         });
     </script>



<div id="hot-network-questions" class="module tex2jax_ignore">
<h4>
    <a href="https://stackexchange.com/questions?tab=hot" class="js-gps-track s-link s-link__inherit" data-gps-track="posts_hot_network.click({ item_type:1, location:11 })">
        Hot Network Questions
    </a>
</h4>
<ul>
        <li>
            <div class="favicon favicon-rpg" title="Role-playing Games Stack Exchange"></div><a href="https://rpg.stackexchange.com/questions/211471/finding-food-on-the-run" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:122 }); posts_hot_network.click({ item_type:2, location:11 })">
                Finding food on the run
            </a>

        </li>
        <li>
            <div class="favicon favicon-mechanics" title="Motor Vehicle Maintenance &amp; Repair Stack Exchange"></div><a href="https://mechanics.stackexchange.com/questions/96637/can-i-get-a-new-key-cut-without-it-being-reprogrammed" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:224 }); posts_hot_network.click({ item_type:2, location:11 })">
                Can I get a new key cut without it being reprogrammed?
            </a>

        </li>
        <li>
            <div class="favicon favicon-unix" title="Unix &amp; Linux Stack Exchange"></div><a href="https://unix.stackexchange.com/questions/775221/how-do-i-programmatically-check-if-a-flatpak-package-is-installed-in-a-shell-scr" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:106 }); posts_hot_network.click({ item_type:2, location:11 })">
                How do I programmatically check if a Flatpak package is installed in a shell script?
            </a>

        </li>
        <li>
            <div class="favicon favicon-money" title="Personal Finance &amp; Money Stack Exchange"></div><a href="https://money.stackexchange.com/questions/162420/is-this-job-a-scam-or-legit" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:93 }); posts_hot_network.click({ item_type:2, location:11 })">
                Is this job a scam or legit?
            </a>

        </li>
        <li>
            <div class="favicon favicon-scifi" title="Science Fiction &amp; Fantasy Stack Exchange"></div><a href="https://scifi.stackexchange.com/questions/287555/why-dont-they-use-guns-or-lasers-on-arrakis" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:186 }); posts_hot_network.click({ item_type:2, location:11 })">
                Why don't they use guns or lasers on Arrakis?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-superuser" title="Super User"></div><a href="https://superuser.com/questions/1840338/windows-batch-script-how-to-recursively-go-through-all-files-except-certain-fil" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:3 }); posts_hot_network.click({ item_type:2, location:11 })">
                Windows Batch Script: how to recursively go through all files except certain file types and folders?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-blender" title="Blender Stack Exchange"></div><a href="https://blender.stackexchange.com/questions/317168/how-to-mirror-textures-using-shader-nodes" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:502 }); posts_hot_network.click({ item_type:2, location:11 })">
                How to mirror textures using shader nodes?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-academia" title="Academia Stack Exchange"></div><a href="https://academia.stackexchange.com/questions/209896/data-science-undergrad-degree-isnt-what-i-expected-to-be" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:415 }); posts_hot_network.click({ item_type:2, location:11 })">
                Data Science undergrad degree isn't what I expected to be
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-mathoverflow" title="MathOverflow"></div><a href="https://mathoverflow.net/questions/469977/do-parabolic-inductions-share-a-composition-factor-if-and-only-if-the-inducing-d" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:504 }); posts_hot_network.click({ item_type:2, location:11 })">
                Do parabolic inductions share a composition factor if and only if the inducing data are associate?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-mathematica" title="Mathematica Stack Exchange"></div><a href="https://mathematica.stackexchange.com/questions/302344/select-elements-from-a-list-based-on-alphabetical-order-criteria" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:387 }); posts_hot_network.click({ item_type:2, location:11 })">
                Select elements from a list based on alphabetical order criteria
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-politics" title="Politics Stack Exchange"></div><a href="https://politics.stackexchange.com/questions/87186/why-protest-against-the-war-in-gaza-on-the-campus-of-columbia-university" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:475 }); posts_hot_network.click({ item_type:2, location:11 })">
                Why protest against the war in Gaza on the campus of Columbia university?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-ell" title="English Language Learners Stack Exchange"></div><a href="https://ell.stackexchange.com/questions/351386/do-tinker-and-tinkerer-imply-unskillful" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:481 }); posts_hot_network.click({ item_type:2, location:11 })">
                Do "tinker" and "tinkerer" imply "unskillful"?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-crypto" title="Cryptography Stack Exchange"></div><a href="https://crypto.stackexchange.com/questions/111577/sha-3-hash-function-standard-references" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:281 }); posts_hot_network.click({ item_type:2, location:11 })">
                SHA-3 hash function standard references
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-math" title="Mathematics Stack Exchange"></div><a href="https://math.stackexchange.com/questions/4905519/is-my-simpler-proof-correct" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:69 }); posts_hot_network.click({ item_type:2, location:11 })">
                Is my simpler proof correct?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-scifi" title="Science Fiction &amp; Fantasy Stack Exchange"></div><a href="https://scifi.stackexchange.com/questions/287586/book-where-the-female-main-character-cuts-off-her-boyfriend-mid-sentence-to-prov" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:186 }); posts_hot_network.click({ item_type:2, location:11 })">
                Book where the female main character cuts off her boyfriend mid-sentence to prove her point about the perceptions created by one's choice of words
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-diy" title="Home Improvement Stack Exchange"></div><a href="https://diy.stackexchange.com/questions/298675/how-can-i-restore-the-grout-joint-at-the-bottom-of-my-shower-walls" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:73 }); posts_hot_network.click({ item_type:2, location:11 })">
                How can I restore the grout joint at the bottom of my shower walls?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-bicycles" title="Bicycles Stack Exchange"></div><a href="https://bicycles.stackexchange.com/questions/94017/is-a-shimano-grx-fc-rx600-crankset-compatible-with-shimano-claris-groupset" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:126 }); posts_hot_network.click({ item_type:2, location:11 })">
                Is a Shimano GRX FC-RX600 crankset compatible with Shimano Claris groupset?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-hermeneutics" title="Biblical Hermeneutics Stack Exchange"></div><a href="https://hermeneutics.stackexchange.com/questions/94117/why-does-no-historian-speak-of-the-torn-veil-and-how-do-we-reconcile-it-with-scr" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:320 }); posts_hot_network.click({ item_type:2, location:11 })">
                Why does no historian speak of the torn veil and how do we reconcile it with scripture?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-stackoverflow" title="Stack Overflow"></div><a href="https://stackoverflow.com/questions/78384904/is-stdatomicbool-trivially-copyable" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:1 }); posts_hot_network.click({ item_type:2, location:11 })">
                Is std::atomic&lt;bool&gt; trivially copyable?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-history" title="History Stack Exchange"></div><a href="https://history.stackexchange.com/questions/75930/bismarck-urged-not-to-hinder-russia-from-going-deeper-into-the-oriental-dead-en" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:324 }); posts_hot_network.click({ item_type:2, location:11 })">
                Bismarck urged not to hinder Russia from going deeper into the "oriental dead end." What did he mean by "oriental dead end?"
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-worldbuilding" title="Worldbuilding Stack Exchange"></div><a href="https://worldbuilding.stackexchange.com/questions/257608/why-aren-t-there-advanced-computers-in-an-advanced-society" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:579 }); posts_hot_network.click({ item_type:2, location:11 })">
                Why aren’t there advanced computers in an advanced society?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-codereview" title="Code Review Stack Exchange"></div><a href="https://codereview.stackexchange.com/questions/291745/find-minimum-element-plus-index-between-8-zmm-registers" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:196 }); posts_hot_network.click({ item_type:2, location:11 })">
                Find minimum element plus index between 8 zmm registers
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-softwareengineering" title="Software Engineering Stack Exchange"></div><a href="https://softwareengineering.stackexchange.com/questions/453006/what-is-the-advantage-of-log-file-rotation" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:131 }); posts_hot_network.click({ item_type:2, location:11 })">
                What is the advantage of log file rotation?
            </a>

        </li>
        <li class="js-hidden" style="">
            <div class="favicon favicon-academia" title="Academia Stack Exchange"></div><a href="https://academia.stackexchange.com/questions/209882/can-an-undergraduate-student-be-penalized-for-exceeding-what-is-expected-of-a-wo" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:415 }); posts_hot_network.click({ item_type:2, location:11 })">
                Can an undergraduate student be penalized for exceeding what is expected of a work?
            </a>

        </li>
</ul>

    
</div>

</div>

</div>
<script>StackExchange.ready(function(){$.get('/posts/1077347/ivc/5883?prg=d4b17426-7a2d-458f-b31c-8be8f604ea06');});</script>
<noscript><div><img src="/posts/1077347/ivc/5883?prg=d4b17426-7a2d-458f-b31c-8be8f604ea06" class="dno" alt="" width="0" height="0"></div></noscript><div style="display:none" id="js-codeblock-lang">lang-py</div></div>

                    

<div id="noscript-wrapper" class="d-none">
    <noscript>
        <img src="/js-false.gif" alt="" />
    </noscript>
    <script type="text/javascript">
        const img = document.createElement('img');
        img.src = '/js-true.gif';
        img.alt = '';
        document.getElementById('noscript-wrapper')?.appendChild(img);
    </script><img src="/js-true.gif" alt="">
</div>

    </div>
</div>

    
<script type="text/javascript">
var cam = cam || { opt: {} };
var clcGamLoaderOptions = cam || { opt: {} };
var opt = clcGamLoaderOptions.opt;

opt.omni = 'BwoLCNLE6Mvc6vI8EAUY4-BBIAIoAjoTfHB5dGhvbnxweXRob24tMy54fEABSAFaEgkOiqUremMlRxG0aWWyQ5VAGhGL9-tEoim83vU';
opt.refresh = !1;
opt.refreshInterval = 90;
opt.sf = !0;
opt.hb = !1;
opt.ll = !0;
opt.tlb_position = 0;
opt.personalization_consent = !0;
opt.targeting_consent = !0;
opt.performance_consent = !0;

opt.targeting = {Registered:['false'],'so-tag':['python','python-3.x'],'tag-reportable':['python','python-3.x'],'so_tag':['python','python_3.x'],NumberOfAnswers:['3']};
opt.adReportEnabled = !0;
opt.adReportUrl = '/ads/report-ad';
opt.adReportText = 'Report this ad';
opt.adReportFileTypeErrorMessage = 'Please select a PNG or JPG file.';
opt.adReportFileSizeErrorMessage = 'The file must be under 2 MiB.';
opt.adReportErrorText = 'Error uploading ad report.';
opt.adReportThanksText = 'Thanks for your feedback. We’ll review this against our code of conduct and take action if necessary.';
opt.adReportLoginExpiredMessage = 'Your login session has expired, please login and try again.';
opt.adReportLoginErrorMessage = 'An error occurred when loading the report form - please try again';
opt.adReportModalClass = 'js-ad-report';
opt.countryCode = 'HK';
opt.qualtricsSurveyData = '{"isRegistered":"False","repBucket":"new","referrer":"https://stackoverflow.com/questions/1077347/hello-world-in-python?r=SearchResults&s=1|162.1862","accountAge":"0"}';

    opt.brandSurveyEnabled = true;
        opt.brandSurveySettings = [{"brandId":7,"lineItemIds":[6170355049,6170355058,6170355244,6168829383,6170355787,6170355799,6168829803,6170356261,6170356282,6170984786,6170985065,6168833181,6170358871,6170360326,6170360578,6168834204,6170361016,6170986253,6377604184,6378262502,6378262511,6377604211,6377604223,6377604700,6318450889,6318453241,6318453259,6318453310],"mode":"Collect"},{"brandId":8,"lineItemIds":[6389119380,6389119404,6389119347],"mode":"Collect"}];
opt.perRequestGuid = 'd4b17426-7a2d-458f-b31c-8be8f604ea06';
opt.responseHash = 'YK8HkyKUB8NzSzW/k8TwGJBPh7i54jYRPP85P&#x2B;GjuAY=';


opt.targeting.TargetingConsent = ['True'];
opt.allowAccountTargetingForThisRequest = !1;

const urlParams = new URLSearchParams(window.location.search);
if (urlParams.has('dfptestads')) {
    const dfptestads = urlParams.get('dfptestads');
    opt.targeting.DfpTestAds = dfptestads;
}
</script>
<script>;(()=>{"use strict";var __webpack_modules__={23:(e,t,s)=>{s.d(t,{Z7:()=>l,eq:()=>d,kG:()=>r});const n=(o=location.pathname,/^\/tags\//.test(o)||/^\/questions\/tagged\//.test(o)?"tag-pages":/^\/discussions\//.test(o)||/^\/beta\/discussions/.test(o)?"discussions":/^\/$/.test(o)||/^\/home/.test(o)?"home-page":/^\/jobs$/.test(o)||/^\/jobs\//.test(o)?"jobs":"question-pages");var o;let a=location.hostname;const i={slots:{lb:[[728,90]],mlb:[[728,90]],smlb:[[728,90]],bmlb:[[728,90]],sb:e=>"dfp-tsb"===e?[[300,250],[300,600]]:[[300,250]],"tag-sponsorship":[[730,135]],"mobile-below-question":[[320,50],[300,250]],msb:[[300,250],[300,600]],"talent-conversion-tracking":[[1,1]],"site-sponsorship":[[230,60]]},ids:{"dfp-tlb":"lb","dfp-mlb":"mlb","dfp-smlb":"smlb","dfp-bmlb":"bmlb","dfp-tsb":"sb","dfp-isb":"sb","dfp-tag":"tag-sponsorship","dfp-msb":"msb","dfp-sspon":"site-sponsorship","dfp-m-aq":"mobile-below-question"},idsToExcludeFromAdReports:["dfp-sspon"]};function r(){return Object.keys(i.ids)}function d(e){return i.idsToExcludeFromAdReports.indexOf(e)<0}function l(e){var t=e.split("_")[0];const s=i.ids[t];let o=i.slots[s];return"function"==typeof o&&(o=o(t)),{path:`/248424177/${a}/${s}/${n}`,sizes:o,zone:s}}},865:(e,t,s)=>{function n(e){return"string"==typeof e?document.getElementById(e):e}function o(e){return!!(e=n(e))&&"none"===getComputedStyle(e).display}function a(e){return!o(e)}function i(e){return!!e}function r(e){return/^\s*$/.test(n(e).innerHTML)}function d(e){const{style:t}=e;t.height=t.maxHeight=t.minHeight="auto",t.display="none"}function l(e){const{style:t}=e;t.height=t.maxHeight=t.minHeight="auto",t.display="none",[].forEach.call(e.children,l)}function c(e){const{style:t}=e;t.height=t.maxHeight=t.minHeight="auto",t.removeProperty("display")}function g(e){const t=document.createElement("script");t.src=e,document.body.appendChild(t)}function p(e){return s=e,(t=[]).push=function(e){return s(),delete this.push,this.push(e)},t;var t,s}function h(e){let t="function"==typeof HTMLTemplateElement;var s=document.createElement(t?"template":"div");return e=e.trim(),s.innerHTML=e,t?s.content.firstChild:s.firstChild}s.d(t,{$Z:()=>c,Bv:()=>h,Gx:()=>g,Nj:()=>n,QZ:()=>p,cf:()=>d,pn:()=>a,wo:()=>l,xb:()=>r,xj:()=>o,yb:()=>i})},763:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{t:()=>AdReports});var _common_helper__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(865),_console__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(276),_ad_units__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(23);class AdReports{constructor(e,t){if(this.googletag=e,this.cam=t,this.allowedFileTypes=["image/png","image/jpg","image/jpeg"],this.ignoreValidation=!1,_console__WEBPACK_IMPORTED_MODULE_1__.cM("Ad reporting init"),this.cam=t,this.callOnButtonClick=e=>this.onButtonClick(e),this.googletag.pubads().addEventListener("slotRenderEnded",e=>this.handleSlotRendered(e)),Array.isArray(t.slotsRenderedEvents)){_console__WEBPACK_IMPORTED_MODULE_1__.cM("Adding report button to "+t.slotsRenderedEvents.length+" events that have transpired");for(var s=0;s<t.slotsRenderedEvents.length;s++)this.handleSlotRendered(t.slotsRenderedEvents[s])}}handleSlotRendered(e){if(e&&e.slot&&!e.isEmpty&&(e.creativeId||e.lineItemId||!e.isEmpty)){var t=e.slot.getSlotElementId();if(t){var s=document.getElementById(t);if(s)if((0,_ad_units__WEBPACK_IMPORTED_MODULE_0__.eq)(t)){var n=s?.closest(".js-zone-container")?.querySelector(".js-report-ad-button-container");n?(n.innerHTML="",n.append(this.createButton(e)),n.style.height="24px",_console__WEBPACK_IMPORTED_MODULE_1__.cM("Added report button to the bottom of "+t)):_console__WEBPACK_IMPORTED_MODULE_1__.cM("Ad report button not found, may be intentional, element: "+t)}else _console__WEBPACK_IMPORTED_MODULE_1__.cM("Not adding report button to the bottom of "+t+": shouldHaveReportButton = false");else _console__WEBPACK_IMPORTED_MODULE_1__.cM("Not adding report button to the bottom of "+t+": resolved invalid adUnit element")}else _console__WEBPACK_IMPORTED_MODULE_1__.cM("Not adding report button to the bottom of element: invalid adUnitElementId")}else _console__WEBPACK_IMPORTED_MODULE_1__.cM("Not adding report button to the bottom of element: invalid SlotRenderEndedEvent")}async onButtonClick(e){e.preventDefault();let t=e.target;const s=t.dataset.modalUrl,n=t.dataset.googleEventData;return await this.loadModal(s,t,n),!1}createButton(e){let t=document.createElement("button");var s=JSON.stringify(e);return t.dataset.googleEventData=s,t.dataset.modalUrl=this.cam.opt.adReportUrl,t.dataset.adUnit=e.slot.getSlotElementId(),t.classList.add("js-report-ad","s-btn","s-btn__link","fs-fine","mt2","float-right"),t.append(document.createTextNode(this.cam.opt.adReportText)),t.removeEventListener("click",this.callOnButtonClick),t.addEventListener("click",this.callOnButtonClick),t}async loadModal(url,$link,googleEventData){try{await window.StackExchange.helpers.loadModal(url,{returnElements:window.$($link)}),this.initForm(googleEventData)}catch(e){var message="",response=e.responseText?eval(`(${e.responseText})`):null;message=response&&response.isLoggedOut?this.cam.opt.adReportLoginExpiredMessage:this.cam.opt.adReportLoginErrorMessage,window.StackExchange.helpers.showToast(message,{type:"danger"})}}removeModal(){window.StackExchange.helpers.closePopups(document.querySelectorAll("."+this.cam.opt.adReportModalClass),"dismiss")}initForm(e,t=!1){this.ignoreValidation=t,this.$form=document.querySelector(".js-ad-report-form"),this.$googleEventData=this.$form.querySelector(".js-json-data"),this.$adReportReasons=this.$form.querySelectorAll(".js-ad-report-reason"),this.$adReportReasonOther=this.$form.querySelector(".js-ad-report-reason-other"),this.$fileUploaderInput=this.$form.querySelector(".js-file-uploader-input"),this.$imageUploader=this.$form.querySelector(".js-image-uploader"),this.$clearImageUpload=this.$form.querySelector(".js-clear-image-upload"),this.$imageUploaderText=this.$form.querySelector(".js-image-uploader-text"),this.$imageUploaderPreview=this.$form.querySelector(".js-image-uploader-preview"),this.$fileErrorMessage=this.$form.querySelector(".js-file-error");const s=this.$form.querySelector(".js-drag-drop-enabled"),n=this.$form.querySelector(".js-drag-drop-disabled");this.$googleEventData.value=e,this.$adReportReasons.forEach((e,t)=>e.addEventListener("change",e=>{this.$adReportReasonOther.classList.toggle("d-none","3"!==e.target.value)})),this.$fileUploaderInput.addEventListener("change",()=>{this.validateFileInput()&&this.updateImagePreview(this.$fileUploaderInput.files)}),this.$clearImageUpload.addEventListener("click",e=>{e.preventDefault(),this.clearImageUpload()});try{this.$fileUploaderInput[0].value="",this.$imageUploader.addEventListener("dragenter dragover dragleave drop",this.preventDefaults),this.$imageUploader.addEventListener("dragenter dragover",this.handleDragStart),this.$imageUploader.addEventListener("dragleave drop",this.handleDragEnd),this.$imageUploader.addEventListener("drop",this.handleDrop)}catch(e){s.classList.add("d-none"),n.classList.remove("d-none")}this.$form.removeEventListener("",this.handleDragEnd),this.$form.addEventListener("submit",async e=>(e.preventDefault(),this.submitForm(),!1))}clearImageUpload(){this.$fileUploaderInput.value="",this.$imageUploaderPreview.setAttribute("src",""),this.$imageUploaderPreview.classList.add("d-none"),this.$clearImageUpload.classList.add("d-none"),this.$imageUploaderText.classList.remove("d-none"),this.$imageUploader.classList.add("p16","ba","bas-dashed","bc-black-100")}preventDefaults(e){e.preventDefault(),e.stopPropagation()}handleDragStart(e){this.$imageUploader.classList.remove("bas-dashed"),this.$imageUploader.classList.add("bas-solid","bc-black-100")}handleDragEnd(e){this.$imageUploader.classList.remove("bas-solid","bc-black-100"),this.$imageUploader.classList.add("bas-dashed")}handleDrop(e){var t=e.originalEvent.dataTransfer.files;FileReader&&t&&1===t.length&&(this.$fileUploaderInput.files=t,this.validateFileInput()&&this.updateImagePreview(t))}setError(e){this.$fileErrorMessage.parentElement.classList.toggle("has-error",e)}updateImagePreview(e){this.$imageUploader.classList.remove("p16","ba","bas-dashed","bc-black-100"),this.$clearImageUpload.classList.remove("d-none"),this.$imageUploaderText.classList.add("d-none");var t=new FileReader;t.onload=e=>{null!=e.target&&(this.$imageUploaderPreview.setAttribute("src",e.target.result),this.$imageUploaderPreview.classList.remove("d-none"))},t.readAsDataURL(e[0])}validateFileInput(){if(this.ignoreValidation)return!0;const e=this.cam.opt.adReportFileTypeErrorMessage,t=this.cam.opt.adReportFileSizeErrorMessage;if(null==this.$fileUploaderInput.files)return!1;var s=this.$fileUploaderInput.files[0];return null==s?(this.setError(!0),!1):this.allowedFileTypes.indexOf(s.type)<0?(this.$fileErrorMessage.textContent=e,this.$fileErrorMessage.classList.remove("d-none"),this.setError(!0),!1):s.size>2097152?(this.$fileErrorMessage.textContent=t,this.$fileErrorMessage.classList.remove("d-none"),this.setError(!0),!1):(this.$fileErrorMessage.classList.add("d-none"),this.setError(!1),!0)}async gatherDiagnosticInfo(){return{BrowserVersion:await this.getBrowserVersion()}}getElementSource(e){return e.outerHTML}getNestedIFrameElement(e){var t=e.querySelector("iframe");return t.contentDocument?t.contentDocument.documentElement:t.contentWindow.document.documentElement}async getBrowserVersion(){return await navigator.userAgentData.getHighEntropyValues(["fullVersionList"]).then(e=>JSON.stringify(e.fullVersionList))}async submitForm(){if(!this.validateFileInput())return!1;this.$form.querySelector("[type=submit]").setAttribute("disabled","true");var e=JSON.parse(this.$googleEventData.value||"{}");e.Reason=parseInt(this.$form.querySelector(".js-ad-report-reason:checked").value,10),e.Description=this.$adReportReasonOther.value,this.$googleEventData.value=JSON.stringify(e);var t=new FormData(this.$form);if("1"===t.get("shareDiagnosticInfo")){var s=await this.gatherDiagnosticInfo();Object.keys(s).forEach(e=>t.append(e,s[e]))}try{const e=await window.fetch(this.$form.getAttribute("action"),{method:this.$form.getAttribute("method"),body:t,cache:"no-cache"}),s=e.headers.get("content-type")||"",o=await e.text();if(!e.ok)throw new Error("response not valid");if(0===s.indexOf("text/html")){var n=(0,_common_helper__WEBPACK_IMPORTED_MODULE_2__.Bv)(o);const e=n?n.querySelector(".js-modal-content"):null;if(_console__WEBPACK_IMPORTED_MODULE_1__.cM("$popupContent"),_console__WEBPACK_IMPORTED_MODULE_1__.cM(e),!e)throw new Error(`Could not find .js-modal-content in response from ${this.$form.getAttribute("action")}`);document.querySelector(".js-modal-content").replaceWith(e)}else window.StackExchange.helpers.showToast(this.cam.opt.adReportThanksText,{type:"success"}),this.removeModal()}catch(e){window.StackExchange.helpers.showToast(this.cam.opt.adReportErrorText,{type:"danger"})}finally{let e=this.$form.querySelector("[type=submit]");e&&e.removeAttribute("disabled")}}}},276:(e,t,s)=>{function n(...e){}function o(...e){}s.d(t,{cM:()=>n,vU:()=>o})}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var s=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](s,s.exports,__webpack_require__),s.exports}__webpack_require__.d=(e,t)=>{for(var s in t)__webpack_require__.o(t,s)&&!__webpack_require__.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var __webpack_exports__={};(()=>{var e=__webpack_require__(276),t=(e=>(e[e.Above=0]="Above",e[e.Below=1]="Below",e))(t||{});const s=Object.assign({},{"lib":"https://cdn.sstatic.net/clc/js/bundles/gam_loader_script/gam_loader_script.bundle.741.b7a349d3ae5888d1d971.min.js","style":null,"u":null,"wa":true,"kt":2000,"tto":true,"h":"clc.stackoverflow.com","allowed":"^(((talent\\.)?stackoverflow)|(blog\\.codinghorror)|(.*\\.googlesyndication)|(serverfault|askubuntu|superuser)|([^\\.]+\\.stackexchange))\\.com$","wv":true,"al":false,"abd":true,"cpa_liid":[5882654614],"cpa_cid":[138377597667],"dp":false,"tgt_to":1000,"tgt_u":"https://clc.stackoverflow.com/get-user-acct-tgt","tgt_e":true,"tgt_p":100,"dv_enabled":true});var n=__webpack_require__(23),o=__webpack_require__(865),a=__webpack_require__(763);class i{constructor(t,s){this.googletag=t,this.interval=s,e.cM("Ad refresh init. interval: "+s),this.googletag.pubads().addEventListener("impressionViewable",e=>this.onImpressionViewable(e)),e.cM("done enabling ad refresh")}onImpressionViewable(t){var s=t.slot;e.cM("ad refresh - slot "+s.getSlotElementId()+" is viewable, initializing refresh"),this.scheduleRefresh(s)}scheduleRefresh(e){setTimeout(()=>this.refreshAdSlot(e),1e3*this.interval)}static refreshMyAd(t,s){let n=t.pubads().getSlots().find(e=>e.getSlotElementId()===s);n&&(e.cM("refreshMyAd - refreshing ad slot "+s),t.pubads().refresh([n]))}static removeMyAd(t,s){let n=t.pubads().getSlots().find(e=>e.getSlotElementId()===s);n&&(e.cM("removeMyAd - destroying ad slot "+s),t.destroySlots([n]))}refreshAdSlot(t){var s=t.getSlotElementId();this.isElementVisibleInBrowser(s)?(e.cM("refreshing ad slot "+s),googletag.pubads().refresh([t])):(e.cM("refresh skipped this time; ad slot not viewable:"+s),this.scheduleRefresh(t))}isElementVisibleInBrowser(e){var t=document.getElementById(e);if(null!==t){var s=t.getBoundingClientRect();if(s.top>=0&&s.left>=0&&s.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&s.right<=(window.innerWidth||document.documentElement.clientWidth))return!0}return!1}}var r=(e=>(e.Off="Off",e.PreSurvey="PreSurvey",e.Collect="Collect",e.PostSurvey="PostSurvey",e))(r||{});class d{constructor(e,t){this.lineItemImpressions=[],this.surveysIdsCompleted=[],this.lineItemImpressions=e,this.surveysIdsCompleted=t}addImpression(e,t){let s={brandId:e,lineItemId:t,timestamp:new Date};this.lineItemImpressions.push(s)}addBrandSurveyCompleted(e){-1===this.surveysIdsCompleted.indexOf(e)&&this.surveysIdsCompleted.push(e)}getTotalBrandImpressions(){let e=new Map;for(let t of this.lineItemImpressions)if(e.has(t.brandId)){let s=e.get(t.brandId);e.set(t.brandId,s+1)}else e.set(t.brandId,1);return e}getBrandLineItemImpressions(e){let t={};for(let s of this.lineItemImpressions)if(s.brandId==e)if(void 0!==t[s.lineItemId]){let e=t[s.lineItemId];t[s.lineItemId]=e+1}else t[s.lineItemId]=1;return t}}class l{constructor(){this.surveyEngagementLocalStorageKey="clc-survey-engagement"}getBrandSurveyEngagement(){let e=localStorage.getItem(this.surveyEngagementLocalStorageKey);if(null===e)return new d([],[]);let t=JSON.parse(e);return new d(t.lineItemImpressions,t.surveysIdsCompleted)}saveBrandSurveyEngagement(e){let t=JSON.stringify(e);localStorage.setItem(this.surveyEngagementLocalStorageKey,t)}}class c{constructor(){this.surveyRepository=new l}getBrandSurveyEngagement(){return this.surveyRepository.getBrandSurveyEngagement()}recordImpression(e,t){let s=this.getBrandSurveyEngagement();s.addImpression(e,t),this.surveyRepository.saveBrandSurveyEngagement(s)}recordBrandSurveyCompleted(e){let t=this.getBrandSurveyEngagement();t.addBrandSurveyCompleted(e),this.surveyRepository.saveBrandSurveyEngagement(t)}}class g{constructor(t,s){this.googletag=t,this.brandSettings=s,this.brandSlotMap=new Map,this.brandSurveyEngagementService=new c,e.cM("Brand Survey init: "+JSON.stringify(s)),void 0!==s?(this.googletag.pubads().addEventListener("slotRenderEnded",e=>this.handleSlotRendered(e)),this.googletag.pubads().addEventListener("impressionViewable",e=>this.onImpressionViewable(e)),e.cM("done enabling Brand Survey")):e.cM("Brand Survey init: brandSettings is undefined, not initializing")}handleSlotRendered(t){e.cM("Brand Survey - slot rendered - slot:"+JSON.stringify(t.slot.getSlotElementId())+" lineItem: "+t.lineItemId);let s=this.findItemWithId(t.lineItemId);if(null===s||s.mode!==r.Collect)this.brandSlotMap.delete(t.slot.getSlotElementId());else{let e={brandId:s.brandId,lineItemId:t.lineItemId};this.brandSlotMap.set(t.slot.getSlotElementId(),e)}}onImpressionViewable(t){let s=t.slot;if(e.cM("ad - Brand Survey - impression viewable.  Details: "+JSON.stringify(s.getSlotElementId())),e.cM("ad - Brand Survey - slot "+s.getSlotElementId()+" is viewable"),this.brandSlotMap.has(s.getSlotElementId())){let t=this.brandSlotMap.get(s.getSlotElementId());e.cM("Brand Survey - brand "+t.brandId+" is viewable"),this.recordImpression(this.brandSlotMap.get(s.getSlotElementId()))}}recordImpression(t){e.cM("ad - Brand Survey - recording impression for brand "+t.brandId),this.brandSurveyEngagementService.recordImpression(t.brandId,t.lineItemId)}findItemWithId(t){return e.cM("brand settings: "+JSON.stringify(this.brandSettings)),this.brandSettings.find(e=>e.lineItemIds.includes(t))||null}}const p="response-brand-survey-submit|",h="request-brand-survey-metadata|",m="record-metric-on-server|",u="request-dsp-tags",f="response-dsp-tags|";class v{static refreshAdIfBrandSurveyIsDuplicated(e,t,s){if(this.alreadyCompletedThisBrandSurvey(t)){var n=document.getElementById(s).closest(".js-zone-container");i.removeMyAd(e,s),n&&n.remove()}}static alreadyCompletedThisBrandSurvey(e){return(new c).getBrandSurveyEngagement().surveysIdsCompleted.includes(e)}}window.cam=new class{constructor(t=null){if(this.gptImported=!1,this.slotsRenderedEvents=[],this.collapsed={},e.cM("constructor"),this.clc_options=s,window.clcGamLoaderOptions)Object.assign(this,window.clcGamLoaderOptions);else if(void 0===this.opt){let e=window.opt;e&&(this.opt=e)}}init(){if(e.cM("init"),void 0===this.opt)throw new Error("opt not set, required by GAM Loader");e.cM("init brand survey service"),this.getUserMetaPromise=this.getUserMeta(),e.cM("setup message handler"),window.addEventListener("message",e=>{this.onmessage(e)})}handleSlotRenderedNoAdReport(){if(googletag.pubads().addEventListener("slotRenderEnded",e=>this.applyExtraMarginBottom(e)),Array.isArray(this.slotsRenderedEvents))for(var e=0;e<this.slotsRenderedEvents.length;e++)this.applyExtraMarginBottom(this.slotsRenderedEvents[e])}onmessage(t){let s="omni";if(t.data&&("string"==typeof t.data||t.data instanceof String))if(0===t.data.indexOf("get-omni-")){e.cM("Recevied get-omni message, sending back omni");var n=t.source,a=this.opt.omni,i="string"==typeof a?a:"";n.postMessage([s,i,this.opt.perRequestGuid].join("|"),"*")}else if(0===t.data.indexOf("collapse-")){e.cM("Recevied collapse message, collapse ad iframe"),e.cM(t);for(var r=t.source.window,d=document.getElementsByTagName("IFRAME"),l=0;l<d.length;l++){var g=d[l];if(g.contentWindow==r)return void(0,o.wo)(g.parentElement.parentElement.parentElement)}}else if(0===t.data.indexOf("resize|")){e.cM("Recevied resize message, resize ad iframe"),e.cM(t);let s=this._getFrameByEvent(t),n=t.data.indexOf("|")+1,o=t.data.slice(n),a=parseFloat(o)+.5;e.cM("New iframe height "+a),s.height=a.toString(),s.parentElement.style.height=a.toString()+"px"}else if(0===t.data.indexOf("getmarkup|")){let s=t.data.indexOf("|")+1,n=t.data.slice(s);e.cM("Recevied get markup message: "+n);let o=this._getFrameByEvent(t).closest(".everyonelovesstackoverflow");const a=document.createElement("script");a.dataset.adZoneId=o.id,a.src=n,document.body.appendChild(a)}else if(0===t.data.indexOf("window-location|")){let s=t.data.indexOf("|")+1,n=t.data.slice(s);e.cM("Recevied window location message: "+n),n.startsWith("/")||(n="/"+n),window.open(window.location.protocol+"//"+window.location.host+n,"_blank")}else if(0===t.data.indexOf("request-brand-survey-submit|")){let s=t.data.split("|"),n=s[1],o=s[2],a=s[3],i=JSON.parse(a);e.cM(n),e.cM(o),e.cM(a),e.cM("Received brand survey "+n+" response message: "+o);var _=new FormData;for(var b in i)_.append(b,i[b]);let r=this._getFrameByEvent(t);if(v.alreadyCompletedThisBrandSurvey(+n))return e.cM("Already completed this brand survey.  Not submitting duplicate to server."),void r.contentWindow.postMessage("response-brand-survey-submit-duplicate|","*");e.cM("Send the brand survey to the server"),fetch(o,{method:"POST",body:_}).then(e=>e.json()).then(e=>r.contentWindow.postMessage({messageType:p},"*")).catch(e=>r.contentWindow.postMessage({messageType:p},"*"))}else if(0===t.data.indexOf("brand-survey-completed-store|")){let s=t.data.split("|"),n=(s[1],s[2]);if(e.cM("Received brand survey completed store message for survey ID "+n),v.alreadyCompletedThisBrandSurvey(+n))return void e.cM("Already completed this brand survey.  Not recording duplicate locally.");e.cM("Record brand survey completion locally"),(new c).recordBrandSurveyCompleted(+n)}else if(0===t.data.indexOf(h)){let s=t.data.split("|"),n=s[1],o=s[2];e.cM("Received message: request-brand-survey-metadata| with Brand Survey ID "+o);let a=(new c).getBrandSurveyEngagement().getBrandLineItemImpressions(+n),i=JSON.stringify(a),r=this._getFrameByEvent(t);e.cM("sending impression data: "+i),r.contentWindow.postMessage("response-brand-survey-metadata|"+this.opt.responseHash+"|"+this.opt.perRequestGuid+"|"+i+"|"+this.opt.countryCode,"*")}else if(0===t.data.indexOf("refresh-if-duplicate-brand-survey|")){let e=t.data.split("|")[1],s=this.getSlotElementIdByEvent(t);v.refreshAdIfBrandSurveyIsDuplicated(googletag,+e,s)}else if(0===t.data.indexOf(m)){e.cM("Received message: record-metric-on-server| with args: "+t.data);let s=t.data.split("|"),n=s[1],o=s[2],a=s[3],i=s[4],r=new FormData;r.append("brandSurveyId",a.toString()),r.append("responseHash",this.opt.responseHash),r.append("perRequestGuid",this.opt.perRequestGuid),r.append("questionNumber",n.toString()),r.append("metricType",i.toString()),fetch(o,{method:"POST",body:r}).then(e=>e.ok).catch(t=>{e.cM("SendMetricToServer: Error sending metric to server: "+t)})}else if(0===t.data.indexOf(u)){e.cM("Received message: request-dsp-tags with args: "+t.data);let s=this._getFrameByEvent(t);if(!this.opt.targeting["so-tag"])return void s.contentWindow.postMessage(f,"*");const n=this.opt.targeting["so-tag"].join(",");e.cM("sending targeting tags: "+n),s.contentWindow.postMessage(f+n,"*")}else e.cM("Received unhandled message")}getSlotElementIdByEvent(e){let t=this._getFrameByEvent(e).parentElement?.parentElement?.id;return t||""}_getFrameByEvent(e){return Array.from(document.getElementsByTagName("iframe")).filter(t=>t.contentWindow===e.source)[0]}classifyZoneIds(e){const t=e.map(o.Nj).filter(o.yb);return{eligible:t.filter(o.xb).filter(o.pn),ineligible:t.filter(o.xj)}}applyExtraMarginBottom(t){if(t&&t.slot&&!t.isEmpty&&(t.creativeId||t.lineItemId||!t.isEmpty)){var s=t.slot.getSlotElementId();if(s){var o=document.getElementById(s);if(o)if((0,n.eq)(s)){var a=o?.closest(".js-zone-container");a.style.marginBottom="24px",e.cM("Applied extra margin to the bottom of "+s)}else e.cM("Not applying extra margin to the bottom of "+s+": shouldHaveReportButton = false");else e.cM("Not applying extra margin to the bottom of "+s+": resolved invalid adUnit element")}else e.cM("Not applying extra margin to the bottom of element: invalid adUnitElementId")}else e.cM("Not applying extra margin to the bottom of element: invalid SlotRenderEndedEvent")}async load(s=(0,n.kG)()){const r=this.opt.tlb_position===t.Above?["dfp-mlb","dfp-smlb"]:["dfp-mlb","dfp-smlb","dfp-tlb"];if(!this.isGptReady())return e.cM("Initializing..."),this.initGpt(),void googletag.cmd.push(()=>this.load(s));this.opt.adReportEnabled?(e.cM("Ad reporting enabled"),this.adReports=new a.t(googletag,this)):(e.cM("Ad reporting not enabled"),this.handleSlotRenderedNoAdReport()),this.opt.refresh?(e.cM("Ad refresh enabled"),this.adRefresh=new i(googletag,this.opt.refreshInterval)):e.cM("Ad refresh not enabled"),this.opt.brandSurveyEnabled&&(e.cM("Brand Survey enabled"),this.brandSurvey=new g(googletag,this.opt.brandSurveySettings)),e.cM("Attempting to load ads into ids: ",s);const{eligible:d,ineligible:l}=this.classifyZoneIds(s);if(this.initDebugPanel(googletag,d.concat(l)),d.forEach(e=>(0,o.cf)(e)),l.forEach(o.wo),0===d.length)return void e.cM("Found no ad ids on page");e.cM("Eligible ids:",d),this.opt.abd&&this.appendAdblockDetector();var c=googletag.pubads().getSlots();if(c){var p=c.filter(e=>s.indexOf(e.getSlotElementId())>=0);googletag.destroySlots(p)}this.opt.sf&&(googletag.pubads().setForceSafeFrame(!0),googletag.pubads().setSafeFrameConfig({allowOverlayExpansion:!0,allowPushExpansion:!0,sandbox:!0})),e.cM("Targeting consent: Checking...");let h=!1,m=!1;void 0!==this.opt.targeting_consent&&(m=!0,e.cM("Targeting consent: Parameter set"),e.cM("Targeting consent: Consent given? ",this.opt.targeting_consent),h=this.opt.targeting_consent),void 0!==this.opt.personalization_consent&&(e.cM("Personalization consent: Parameter set"),e.cM("Personalization consent: Consent given? ",this.opt.personalization_consent),h=h&&this.opt.personalization_consent),h=h&&m,this.setPrivacySettings(h),this.opt.ll||googletag.pubads().enableSingleRequest(),cam.sreEvent||(googletag.pubads().addEventListener("slotRenderEnded",e=>this.onSlotRendered(e)),cam.sreEvent=!0),await this.setTargeting();var u=d.filter(e=>!this.opt.ll||r.indexOf(e.id)<0),f=d.filter(e=>!!this.opt.ll&&r.indexOf(e.id)>=0);e.cM("Up front ids:",u),e.cM("Lazy loaded ids:",f),u.forEach(t=>{e.cM(`Defining ad for element ${t.id}`),this.defineSlot(t.id,googletag),t.setAttribute("data-dfp-zone","true")}),googletag.enableServices(),u.forEach(t=>{e.cM(`Displaying ad for element ${t.id}`),this.clc_options.dv_enabled?window.onDvtagReady(function(){googletag.display(t.id)}):googletag.cmd.push(()=>googletag.display(t.id))}),this.opt.ll&&(e.cM("Enabling lazy loading for GAM"),googletag.pubads().enableLazyLoad({fetchMarginPercent:0,renderMarginPercent:0}),e.cM("Setting up lazy loaded ad units"),f.forEach(t=>{e.cM(`Lazy loading - Defining Slot ${t.id}`),this.defineSlot(t.id,googletag)}),f.forEach(t=>{e.cM(`Lazy loading - Displaying ad for element ${t.id}`),this.clc_options.dv_enabled?window.onDvtagReady(function(){googletag.display(t.id)}):googletag.cmd.push(()=>googletag.display(t.id))}))}setPrivacySettings(e){e||googletag.pubads().setPrivacySettings({nonPersonalizedAds:!0})}async setTargeting(){if(!googletag)throw new Error("googletag not defined");let t=this.opt.targeting;if(!t)throw new Error("Targeting not defined (is "+typeof t+")");Object.keys(t).forEach(s=>{e.cM(`-> targeting - ${s}: ${t[s]}`),googletag.pubads().setTargeting(s,t[s])});let s=!1;if(void 0!==this.opt.targeting_consent&&(s=this.opt.targeting_consent),s){let t=(new c).getBrandSurveyEngagement();if(t.getTotalBrandImpressions().forEach((t,s)=>{e.cM(`-> targeting - BrandImpressions: ${s}: ${t}`),googletag.pubads().setTargeting("brand_"+s.toString()+"_impressions",t.toString())}),t.surveysIdsCompleted.forEach(t=>{e.cM(`-> targeting - SurveysTaken: ${t}`),googletag.pubads().setTargeting("survey_"+t+"_taken","true")}),this.clc_options.tgt_e&&this.getUserMetaPromise){let t=await this.getUserMetaPromise;t&&t.tgt_acct?(e.cM("-> targeting - User Account: "+t.tgt_acct),googletag.pubads().setTargeting("user-acct",t.tgt_acct.company_name),googletag.pubads().setTargeting("user_acct_top",t.tgt_acct.company_name),googletag.pubads().setTargeting("user_industry",t.tgt_acct.industry),googletag.pubads().setTargeting("user_employee_count",t.tgt_acct.employee_range)):e.cM("-> targeting - User Account: Not Found"),t&&Object.prototype.hasOwnProperty.call(t,"is_high_rep_earner")?(e.cM("-> targeting - High Rep Earner: "+t.is_high_rep_earner),googletag.pubads().setTargeting("IsHighRepEarner",t.is_high_rep_earner?"true":"false")):e.cM("-> targeting - High Rep Earner: not found")}}}appendAdblockDetector(){const e=document.createElement("div");e.className="adsbox",e.id="clc-abd",e.style.position="absolute",e.style.pointerEvents="none",e.innerHTML="&nbsp;",document.body.appendChild(e)}onSlotRendered(s){try{const i=s.slot.getSlotElementId();let r=[];i||r.push("id=0");const d=document.getElementById(i);if(i&&!d&&r.push("el=0"),0!==r.length)return void this.stalled(r.join("&"));const{path:l,sizes:c,zone:g}=(0,n.Z7)(i);if(this.collapsed[g]&&s.isEmpty)return e.cM(`No line item for the element #${d.id}... collapsing.`),void(0,o.wo)(d);if(this.slotsRenderedEvents.push(s),s.lineItemId||s.creativeId||!s.isEmpty){e.cM(`Rendered ad for element #${d.id} [line item #${s.lineItemId}]`),e.cM(s);var a=d.parentElement;if(a.classList.contains("js-zone-container")){switch((0,o.cf)(a),i){case"dfp-tlb":this.opt.tlb_position===t.Above?a.classList.add("mb8"):a.classList.add("mt16");break;case"dfp-tag":a.classList.add("mb8");break;case"dfp-msb":a.classList.add("mt16");break;case"dfp-mlb":case"dfp-smlb":case"dfp-bmlb":a.classList.add("my8");break;case"dfp-isb":a.classList.add("mt24");break;case"dfp-m-aq":a.classList.add("my12"),a.classList.add("mx-auto")}(0,o.$Z)(a),(0,o.$Z)(d)}else e.cM(`No ad for element #${d.id}, collapsing`),e.cM(s),(0,o.wo)(d)}}catch(t){e.cM("Exception thrown onSlotRendered"),e.cM(t),this.stalled("e=1")}}stalled(e){(new Image).src=`https://${this.clc_options.h}/stalled.gif?${e}`}defineSlot(t,s){"dfp-isb"===t&&(e.cM("-> targeting - Sidebar: Inline"),s.pubads().setTargeting("Sidebar",["Inline"])),"dfp-tsb"===t&&(e.cM("-> targeting - Sidebar: Right"),s.pubads().setTargeting("Sidebar",["Right"]));const{path:o,sizes:a,zone:i}=(0,n.Z7)(t);e.cM(`Defining slot for ${t}: ${o}, sizes: ${JSON.stringify(a)}`),s.defineSlot(o,a,t).addService(s.pubads())}importGptLibrary(){this.gptImported||(this.gptImported=!0,void 0===this.opt.targeting_consent||this.opt.targeting_consent?(0,o.Gx)("https://securepubads.g.doubleclick.net/tag/js/gpt.js"):(0,o.Gx)("https://pagead2.googlesyndication.com/tag/js/gpt.js"))}importDvLibrary(){this.clc_options.dv_enabled&&(e.cM("Adding DoubleVerify library"),(0,o.Gx)("https://pub.doubleverify.com/dvtag/21569774/DV1289064/pub.js"),e.cM("Adding DoubleVerify onDvtagReady handler"),window.onDvtagReady=function(t,s=750){e.cM("DoubleVerify onDvtagReady called"),window.dvtag=window.dvtag||{},dvtag.cmd=dvtag.cmd||[];const n={callback:t,timeout:s,timestamp:(new Date).getTime()};dvtag.cmd.push(function(){dvtag.queueAdRequest(n)}),setTimeout(function(){const e=n.callback;n.callback=null,e&&e()},s)})}isGptReady(){return"undefined"!=typeof googletag&&!!googletag.apiReady}initGpt(){"undefined"==typeof googletag&&(window.googletag={cmd:(0,o.QZ)(()=>{this.importGptLibrary(),this.importDvLibrary()})})}getUserMeta(){if(this.opt.allowAccountTargetingForThisRequest&&this.clc_options.tgt_e&&this.clc_options.tgt_p>0){if(e.cM("Targeting enabled."),this.clc_options.tgt_p<100){e.cM("Targeting rate limit enabled.  Rolling the dice...");const t=Math.floor(100*Math.random())+1;if(e.cM("Rolled "+t+" and the max is "+this.clc_options.tgt_p),t>this.clc_options.tgt_p)return void e.cM("Will not request targeting.")}return e.cM("Will request targeting."),function(e,t,s,n){if(t){const t=new Headers;return t.append("Accept","application/json"),async function(e,t={},s=5e3){if("number"!=typeof s&&null!=s&&!1!==s){if("string"!=typeof s)throw new Error("fetchWithTimeout: timeout must be a number");if(s=parseInt(s),isNaN(s))throw new Error("fetchWithTimeout: timeout must be a number (or string that can be parsed to a number)")}const n=new AbortController,{signal:o}=n,a=fetch(e,{...t,signal:o}),i=setTimeout(()=>n.abort(),s);try{const e=await a;return clearTimeout(i),e}catch(e){throw clearTimeout(i),e}}(s+"?"+new URLSearchParams({omni:e}),{method:"GET",mode:"cors",headers:t},n).then(e=>e.json())}return Promise.reject("No consent")}(this.opt.omni,this.opt.targeting_consent,this.clc_options.tgt_u,this.clc_options.tgt_to).catch(t=>{e.vU("Error fetching user account targeting"),e.vU(t)})}e.cM("Targeting disabled.  Will not request account targeting data.")}initDebugPanel(t,s){e.cM("initDebugPanel"),e.cM("Not showing debug panel.")}},window.clcGamLoaderOptions&&(cam.init(),cam.load())})()})();</script><script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script><script src="https://pub.doubleverify.com/dvtag/21569774/DV1289064/pub.js"></script>
    
<footer id="footer" class="site-footer js-footer theme-light__forced" role="contentinfo">
    <div class="site-footer--container">
            <div class="site-footer--logo">

                <a href="https://stackoverflow.com" aria-label="Stack Overflow"><svg aria-hidden="true" class="native svg-icon iconLogoGlyphMd" width="32" height="37" viewBox="0 0 32 37"><path d="M26 33v-9h4v13H0V24h4v9h22Z" fill="#BCBBBB"></path><path d="m21.5 0-2.7 2 9.9 13.3 2.7-2L21.5 0ZM26 18.4 13.3 7.8l2.1-2.5 12.7 10.6-2.1 2.5ZM9.1 15.2l15 7 1.4-3-15-7-1.4 3Zm14 10.79.68-2.95-16.1-3.35L7 23l16.1 2.99ZM23 30H7v-3h16v3Z" fill="#F48024"></path></svg></a>
            </div>
        <nav class="site-footer--nav">
                <div class="site-footer--col">
                    <h5 class="-title"><a href="https://stackoverflow.com" class="js-gps-track" data-gps-track="footer.click({ location: 2, link: 15})">Stack Overflow</a></h5>
                    <ul class="-list js-primary-footer-links">
                        <li><a href="/questions" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 16})">Questions</a></li>
                            <li><a href="/help" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 3 })">Help</a></li>
                    </ul>
                </div>
                <div class="site-footer--col">
                    <h5 class="-title"><a href="https://stackoverflow.co/" class="js-gps-track" data-gps-track="footer.click({ location: 2, link: 19 })">Products</a></h5>
                    <ul class="-list">
                        <li><a href="https://stackoverflow.co/teams/" class="js-gps-track -link" data-ga="[&quot;teams traffic&quot;,&quot;footer - site nav&quot;,&quot;stackoverflow.com/teams&quot;,null,{&quot;dimension4&quot;:&quot;teams&quot;}]" data-gps-track="footer.click({ location: 2, link: 29 })">Teams</a></li>
                        <li><a href="https://stackoverflow.co/advertising/" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 21 })">Advertising</a></li>
                        <li><a href="https://stackoverflow.co/collectives/" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 40 })">Collectives</a></li>
                        <li><a href="https://stackoverflow.co/talent/" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 20 })">Talent</a></li>
                    </ul>
                </div>
            <div class="site-footer--col">
                <h5 class="-title"><a class="js-gps-track" data-gps-track="footer.click({ location: 2, link: 1 })" href="https://stackoverflow.co/">Company</a></h5>
                <ul class="-list">
                        <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 1 })" href="https://stackoverflow.co/">About</a></li>
                    <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 27 })" href="https://stackoverflow.co/company/press/">Press</a></li>
                        <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 9 })" href="https://stackoverflow.co/company/work-here/">Work Here</a></li>
                    <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 7 })" href="https://stackoverflow.com/legal">Legal</a></li>
                    <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 8 })" href="https://stackoverflow.com/legal/privacy-policy">Privacy Policy</a></li>
                    <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 37 })" href="https://stackoverflow.com/legal/terms-of-service/public">Terms of Service</a></li>
                        <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 13 })" href="/contact">Contact Us</a></li>
                        <li id="consent-footer-link"><button type="button" data-controller="cookie-settings" data-action="click->cookie-settings#toggle" class="s-btn s-btn__link py4 js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 38 })" data-consent-popup-loader="footer">Cookie Settings</button></li>
                    <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 39 })" href="https://stackoverflow.com/legal/cookie-policy">Cookie Policy</a></li>
                </ul>
            </div>
            <div class="site-footer--col site-footer--categories-nav">
                <div>
                    <h5 class="-title"><a href="https://stackexchange.com" data-gps-track="footer.click({ location: 2, link: 30 })">Stack Exchange Network</a></h5>
                    <ul class="-list">
                        <li>
                            <a href="https://stackexchange.com/sites#technology" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
                                Technology
                            </a>
                        </li>
                        <li>
                            <a href="https://stackexchange.com/sites#culturerecreation" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
                                Culture &amp; recreation
                            </a>
                        </li>
                        <li>
                            <a href="https://stackexchange.com/sites#lifearts" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
                                Life &amp; arts
                            </a>
                        </li>
                        <li>
                            <a href="https://stackexchange.com/sites#science" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
                                Science
                            </a>
                        </li>
                        <li>
                            <a href="https://stackexchange.com/sites#professional" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
                                Professional
                            </a>
                        </li>
                        <li>
                            <a href="https://stackexchange.com/sites#business" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
                                Business
                            </a>
                        </li>

                        <li class="mt16 md:mt0">
                            <a href="https://api.stackexchange.com/" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
                                API
                            </a>
                        </li>

                        <li>
                            <a href="https://data.stackexchange.com/" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
                                Data
                            </a>
                        </li>
                    </ul>
                </div>
            </div>
        </nav>
        <div class="site-footer--copyright fs-fine md:mt24">
            <ul class="-list -social md:mb8">
                <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link:4 })" href="https://stackoverflow.blog?blb=1">Blog</a></li>
                <li><a href="https://www.facebook.com/officialstackoverflow/" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 31 })">Facebook</a></li>
                <li><a href="https://twitter.com/stackoverflow" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 32 })">Twitter</a></li>
                <li><a href="https://linkedin.com/company/stack-overflow" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 33 })">LinkedIn</a></li>
                <li><a href="https://www.instagram.com/thestackoverflow" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 36 })">Instagram</a></li>
            </ul>

            <p class="md:mb0">
Site design / logo © 2024 Stack Exchange Inc; user contributions licensed under <span class="td-underline"><a href="https://stackoverflow.com/help/licensing">CC BY-SA</a></span>.                    <span id="svnrev">rev&nbsp;2024.4.25.8269</span>
            </p>
        </div>
    </div>

</footer>




        <!-- Google tag (gtag.js) -->
        <script async="" src="https://www.googletagmanager.com/gtag/js?id=G-WCZ03SZFCQ"></script>
        <script>
            window.dataLayer = window.dataLayer || [];
            function gtag() { dataLayer.push(arguments); }
        </script>
        <script>
            (function(i, s, o, g, r, a, m) {
                i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function() { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o),
                    m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m);
            })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
        </script>
    <script>
        StackExchange.ready(function() {

            var ga3Settings = {
                autoLink: ["stackoverflow.blog","info.stackoverflowsolutions.com","stackoverflowsolutions.com"],
                sendTitles: true,
                tracker: window.ga,
                trackingCodes: [
                    'UA-108242619-1'
                ],
                checkDimension: 'dimension42'
            };

            var customGA4Dimensions = {};


            customGA4Dimensions["requestid"] = "d4b17426-7a2d-458f-b31c-8be8f604ea06";

                customGA4Dimensions["routename"] = "Questions/Show";


                customGA4Dimensions["post_id"] = "1077347";


                customGA4Dimensions["tags"] = "|python|python-3.x|";


            var ga4Settings = {
                tracker: gtag,
                trackingCodes: [
                    'G-WCZ03SZFCQ'
                ],
                consentsToPerformanceCookies: "granted",
                consentsToTargetingCookies: "granted",
                eventParameters: customGA4Dimensions,
                checkForAdBlock: true,
                sendTitles: true,
                trackClicks: false,
            };

            StackExchange.ga.init({ GA3: ga3Settings, GA4: ga4Settings });


            StackExchange.ga.setDimension('dimension2', '|python|python-3.x|');


            StackExchange.ga.setDimension('dimension3', 'Questions/Show');


            StackExchange.ga.setDimension('dimension7', "1714102074.189111778");

            StackExchange.ga.trackPageView();
        });
    </script>
    
        <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" charset="UTF-8" data-document-language="true" data-domain-script="c3d9f1e3-55f3-4eba-b268-46cee4c6789c"></script>
<script defer="" src="https://cdn.sstatic.net/Js/modules/cookie-consent.en.js?v=36bebc18e04f"></script><iframe src="https://af4fa0a32236753f4a5a37243b9c3fc5.safeframe.googlesyndication.com/safeframe/1-0-40/html/container.html" style="visibility: hidden; display: none;"></iframe>




<iframe name="google_ads_top_frame" id="google_ads_top_frame" style="display: none; position: fixed; left: -999px; top: -999px; width: 0px; height: 0px;"></iframe><div id="onetrust-consent-sdk"><div class="onetrust-pc-dark-filter ot-hide ot-fade-in"></div><div id="onetrust-banner-sdk" class="otFloatingRoundedCorner ot-bottom-left ot-wo-title vertical-align-content" tabindex="0" role="region" aria-label="Cookie banner"><div class="ot-sdk-container" role="alertdialog" aria-describedby="onetrust-policy-text" aria-label="Privacy"><div class="ot-sdk-row"><div id="onetrust-group-container" class="ot-sdk-twelve ot-sdk-columns"><div id="onetrust-policy"><div class="banner-header"><div class="banner_logo"></div></div><div id="onetrust-policy-text">By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our <a href="https://stackoverflow.com/legal/cookie-policy" rel="noopener" target="_blank">Cookie Policy</a>.</div></div></div><div id="onetrust-button-group-parent" class="ot-sdk-twelve ot-sdk-columns has-reject-all-button"><div id="onetrust-button-group"><div class="banner-actions-container"><button id="onetrust-accept-btn-handler">Accept all cookies</button> <button id="onetrust-reject-all-handler">Necessary cookies only</button></div><button id="onetrust-pc-btn-handler">Customize settings</button></div></div><!-- Close Button --><div id="onetrust-close-btn-container"></div><!-- Close Button END--></div></div></div></div><iframe src="https://www.google.com/recaptcha/api2/aframe" width="0" height="0" style="display: none;"></iframe><iframe src="chrome-extension://ncmfflmaalmgidfdbbikaggnedepbblc/bar.html" id="xh-bar" class=""></iframe></body><iframe name="goog_topics_frame" src="https://securepubads.g.doubleclick.net/static/topics/topics_frame.html" style="display: none;"></iframe></html>